diff --git a/src/Trait.ts b/src/Trait.ts index 3637455..b3fdb42 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, TraitExpressionNullSuperclass, emptyTraitExpression } from "." +import { AbstractTag, TraitExpression, emptyTraitExpression } from "." import { StaticMembers } from "./util" @@ -28,7 +28,7 @@ type RemoveAbstractFromImplClass< export class Trait< - Supertraits extends TraitExpression[], Trait[]>, + Supertraits extends TraitExpression[], Trait[]>, Abstract extends {}, ImplClass extends Class<{}, []>, > { diff --git a/src/TraitExpression.ts b/src/TraitExpression.ts index e24cb6d..c51a32a 100644 --- a/src/TraitExpression.ts +++ b/src/TraitExpression.ts @@ -4,8 +4,6 @@ import { AbstractTag, Trait, TraitApplierSuperTag } from "." import { ExtendFn, SimplifyFn, StaticMembersFn } from "./util" -export class TraitExpressionNullSuperclass {} - export class TraitExpression< Superclass extends AbstractClass<{}>, OwnTraits extends Trait[], @@ -62,6 +60,8 @@ export class TraitExpression< } export namespace TraitExpression { + export class NullSuperclass {} + export type Superclass = ( T extends TraitExpression ? Superclass @@ -103,7 +103,7 @@ export type Implements> = ( export const emptyTraitExpression = new TraitExpression( - TraitExpressionNullSuperclass, + TraitExpression.NullSuperclass, [] as const, [] as const, ) diff --git a/src/tests.ts b/src/tests.ts index c0a35ca..4aef87e 100644 --- a/src/tests.ts +++ b/src/tests.ts @@ -1,4 +1,4 @@ -import { Implements, Trait, TraitExpression, abstract, expression, trait } from "." +import { Implements, TraitExpression, abstract, expression, trait } from "." const PrintsHelloOnNew = trait(