Code improvement
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Julien Valverdé
2024-02-07 21:14:52 +01:00
parent 3e8cb15809
commit 4b142c28f5

View File

@@ -19,9 +19,9 @@ type AbstractMembersExtendable<
Superclass extends AbstractClass<{}>, Superclass extends AbstractClass<{}>,
Traits extends Trait<any, any, any>[], Traits extends Trait<any, any, any>[],
> = ( > = (
Call<ExtendableFn, [ Pipe<Traits, [
InstanceType<Superclass>, Tuples.Map<Trait.OwnAbstractFn>,
...Call<Tuples.Map<Trait.OwnAbstractFn>, Traits>, Tuples.Prepend<InstanceType<Superclass>>,
]> ]>
) )
@@ -29,9 +29,9 @@ type ImplInstanceExtendable<
Superclass extends AbstractClass<{}>, Superclass extends AbstractClass<{}>,
Traits extends Trait<any, any, any>[], Traits extends Trait<any, any, any>[],
> = ( > = (
Call<ExtendableFn, [ Pipe<Traits, [
InstanceType<Superclass>, Tuples.Map<Trait.OwnImplInstanceFn>,
...Call<Tuples.Map<Trait.OwnImplInstanceFn>, Traits>, Tuples.Prepend<InstanceType<Superclass>>,
]> ]>
) )
@@ -39,10 +39,9 @@ type ImplStaticMembersExtendable<
Superclass extends AbstractClass<{}>, Superclass extends AbstractClass<{}>,
Traits extends Trait<any, any, any>[], Traits extends Trait<any, any, any>[],
> = ( > = (
Pipe<[ Pipe<Traits, [
Superclass, Tuples.Map<Trait.OwnImplClassFn>,
...Call<Tuples.Map<Trait.OwnImplClassFn>, Traits>, Tuples.Prepend<Superclass>,
], [
Tuples.Map<StaticMembersFn>, Tuples.Map<StaticMembersFn>,
ExtendableFn, ExtendableFn,
]> ]>
@@ -53,15 +52,13 @@ type BuildTraitExpression<
OwnTraits extends Trait<any, any, any>[], OwnTraits extends Trait<any, any, any>[],
AllTraits extends Trait<any, any, any>[], AllTraits extends Trait<any, any, any>[],
> = ( > = (
Call<Tuples.IsEmpty, AllTraits> extends true AbstractMembersExtendable<Superclass, AllTraits> extends false
? "Cannot express an empty list of traits." ? "Type conflict between the traits abstract members and/or the superclass instance."
: AbstractMembersExtendable<Superclass, AllTraits> extends false : ImplInstanceExtendable<Superclass, AllTraits> extends false
? "Type conflict between the traits abstract members and/or the superclass instance." ? "Type conflict between the traits implementation instances and/or the superclass instance."
: ImplInstanceExtendable<Superclass, AllTraits> extends false : ImplStaticMembersExtendable<Superclass, AllTraits> extends false
? "Type conflict between the traits implementation instances and/or the superclass instance." ? "Type conflict between the traits implementation static members and/or the superclass static members."
: ImplStaticMembersExtendable<Superclass, AllTraits> extends false : TraitExpression<Superclass, OwnTraits, AllTraits>
? "Type conflict between the traits implementation static members and/or the superclass static members."
: TraitExpression<Superclass, OwnTraits, AllTraits>
) )