From 8d29d9ba949b76ee5ec462ff668c33dbafb4ddf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sat, 3 Feb 2024 23:32:56 +0100 Subject: [PATCH] Fix --- src/expresses.ts | 4 ++-- src/trait.ts | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/expresses.ts b/src/expresses.ts index 785c844..53cb047 100644 --- a/src/expresses.ts +++ b/src/expresses.ts @@ -4,9 +4,9 @@ import { AbstractTag, Trait, TraitAbstractMembersFn, TraitApplierSuperTag, Trait import { ExtendFn, ExtendableFn, SimplifyFn, StaticMembersFn } from "./util" -class TraitExpression< +export class TraitExpression< Super extends AbstractClass<{}>, - Traits extends Trait[], + Traits extends Trait[], > { constructor( readonly superclass: Super, diff --git a/src/trait.ts b/src/trait.ts index 6ae2eaf..c6eef90 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 } from "." +import { AbstractTag, TraitExpression } from "." import { StaticMembers } from "./util" @@ -28,21 +28,21 @@ type RemoveAbstractFromImpl< export class Trait< - Abstract extends {}, - Impl extends Class<{}, []>, - Supertraits extends Trait[] + Super extends TraitExpression[], + Abstract extends {}, + Impl extends Class<{}, []>, > { constructor( - readonly supertraits: Supertraits, + readonly supertraits: Super, readonly ownAbstract: Abstract, readonly apply: (Super: AbstractClass<{}>) => Impl, ) {} } export interface Trait< + Super extends TraitExpression[], Abstract extends {}, Impl extends Class<{}, []>, - Supertraits extends Trait[] > { get ownImplClass(): Impl }