diff --git a/src/Trait.ts b/src/Trait.ts index 95719cd..24cd8f4 100644 --- a/src/Trait.ts +++ b/src/Trait.ts @@ -1,6 +1,6 @@ import { Fn } from "hotscript" import { AbstractClass, Class, Opaque } from "type-fest" -import { AbstractTag, TraitExpression, TraitExpressionAllTraits, TraitExpressionNullSuperclass, emptyTraitExpression } from "." +import { AbstractTag, TraitExpression, TraitExpressionNullSuperclass, emptyTraitExpression } from "." import { StaticMembers } from "./util" @@ -89,7 +89,7 @@ export namespace Trait { export type Supertraits = ( T extends Trait - ? TraitExpressionAllTraits + ? TraitExpression.AllTraits : never ) export interface SupertraitsFn extends Fn { diff --git a/src/TraitExpression.ts b/src/TraitExpression.ts index 883075a..1296550 100644 --- a/src/TraitExpression.ts +++ b/src/TraitExpression.ts @@ -61,31 +61,33 @@ export class TraitExpression< } } -export type TraitExpressionSuper = ( - T extends TraitExpression - ? Super - : never -) -export interface TraitExpressionSuperFn extends Fn { - return: TraitExpressionSuper -} +export namespace TraitExpression { + export type Super = ( + T extends TraitExpression + ? Super + : never + ) + export interface SuperFn extends Fn { + return: TraitExpression.Super + } -export type TraitExpressionOwnTraits = ( - T extends TraitExpression - ? OwnTraits - : never -) -export interface TraitExpressionOwnTraitsFn extends Fn { - return: TraitExpressionOwnTraits -} + export type OwnTraits = ( + T extends TraitExpression + ? OwnTraits + : never + ) + export interface OwnTraitsFn extends Fn { + return: TraitExpression.OwnTraits + } -export type TraitExpressionAllTraits = ( - T extends TraitExpression - ? AllTraits - : never -) -export interface TraitExpressionAllTraitsFn extends Fn { - return: TraitExpressionAllTraits + export type AllTraits = ( + T extends TraitExpression + ? AllTraits + : never + ) + export interface AllTraitsFn extends Fn { + return: TraitExpression.AllTraits + } } diff --git a/src/TraitExpressionBuilder.ts b/src/TraitExpressionBuilder.ts index bd926d3..0af24ff 100644 --- a/src/TraitExpressionBuilder.ts +++ b/src/TraitExpressionBuilder.ts @@ -119,13 +119,13 @@ type GetTraitExpression< OwnTraits extends Trait[], AllTraits extends Trait[], > = ( - Call extends true + Call extends true ? "Cannot express an empty list of traits." - : AbstractMembersExtendable extends false + : AbstractMembersExtendable extends false ? "Type conflict between the traits abstract members and/or the superclass instance." - : ImplInstanceExtendable extends false + : ImplInstanceExtendable extends false ? "Type conflict between the traits implementation instances and/or the superclass instance." - : ImplStaticMembersExtendable extends false + : ImplStaticMembersExtendable extends false ? "Type conflict between the traits implementation static members and/or the superclass static members." : TraitExpression )