This commit is contained in:
@@ -5,7 +5,7 @@ import { TraitExpression } from "./TraitExpression"
|
||||
import { ExtendFn, SimplifyFn, StaticMembers } from "./util"
|
||||
|
||||
|
||||
type SuperAbstract<SuperExpression, Abstract> = (
|
||||
type ExtendAbstractSuper<SuperExpression, Abstract> = (
|
||||
Pipe<SuperExpression, [
|
||||
TraitExpression.TraitsFn,
|
||||
Tuples.Map<Trait.OwnAbstractFn>,
|
||||
@@ -15,7 +15,7 @@ type SuperAbstract<SuperExpression, Abstract> = (
|
||||
]>
|
||||
)
|
||||
|
||||
type SuperStaticAbstract<SuperExpression, StaticAbstract> = (
|
||||
type ExtendStaticAbstractSuper<SuperExpression, StaticAbstract> = (
|
||||
Pipe<SuperExpression, [
|
||||
TraitExpression.TraitsFn,
|
||||
Tuples.Map<Trait.OwnStaticAbstractFn>,
|
||||
@@ -61,7 +61,7 @@ export class TraitBuilder<
|
||||
private readonly traitApply: (Super: AbstractClass<object>) => ImplClass,
|
||||
) {}
|
||||
|
||||
abstract<A extends SuperAbstract<SuperExpression, Abstract>>() {
|
||||
abstract<A extends ExtendAbstractSuper<SuperExpression, Abstract>>() {
|
||||
return new TraitBuilder(
|
||||
this.traitSuperExpression,
|
||||
{} as A,
|
||||
@@ -70,10 +70,10 @@ export class TraitBuilder<
|
||||
)
|
||||
}
|
||||
|
||||
extendAbstract<A extends SuperAbstract<SuperExpression, Abstract>>(
|
||||
extendAbstract<A extends ExtendAbstractSuper<SuperExpression, Abstract>>(
|
||||
_: (
|
||||
Super: AbstractClass<
|
||||
SuperAbstract<SuperExpression, Abstract>
|
||||
ExtendAbstractSuper<SuperExpression, Abstract>
|
||||
>
|
||||
) => AbstractClass<A, []>
|
||||
) {
|
||||
@@ -85,7 +85,7 @@ export class TraitBuilder<
|
||||
)
|
||||
}
|
||||
|
||||
staticAbstract<A extends SuperStaticAbstract<SuperExpression, StaticAbstract>>() {
|
||||
staticAbstract<A extends ExtendStaticAbstractSuper<SuperExpression, StaticAbstract>>() {
|
||||
return new TraitBuilder(
|
||||
this.traitSuperExpression,
|
||||
this.traitAbstract,
|
||||
@@ -94,9 +94,9 @@ export class TraitBuilder<
|
||||
)
|
||||
}
|
||||
|
||||
extendStaticAbstract<A extends SuperStaticAbstract<SuperExpression, StaticAbstract>>(
|
||||
extendStaticAbstract<A extends ExtendStaticAbstractSuper<SuperExpression, StaticAbstract>>(
|
||||
_: (Super: AbstractClass<
|
||||
SuperStaticAbstract<SuperExpression, StaticAbstract>
|
||||
ExtendStaticAbstractSuper<SuperExpression, StaticAbstract>
|
||||
>) => AbstractClass<A, []>
|
||||
) {
|
||||
return new TraitBuilder(
|
||||
|
||||
Reference in New Issue
Block a user