0.1.11 #11

Merged
Thilawyn merged 7 commits from next into master 2024-02-24 23:42:25 +01:00
Showing only changes of commit f8a3c7dede - Show all commits

View File

@@ -36,7 +36,7 @@ export class TraitExpressionBuilder<
]) as TraitExpressionBuilder.SpreadSupertraits<T>
}
static uniqTraits<
static traitsUniq<
const T extends Trait<
TraitExpression<
typeof TraitExpression.NullSuperclass,
@@ -49,7 +49,7 @@ export class TraitExpressionBuilder<
>(
traits: T
) {
return uniq(traits) as TraitExpressionBuilder.UniqTraits<T>
return uniq(traits) as TraitExpressionBuilder.TraitsUniq<T>
}
@@ -80,7 +80,7 @@ export class TraitExpressionBuilder<
return new this.constructor(
this.expressionSuperclass,
this.constructor.uniqTraits([
this.constructor.traitsUniq([
...this.expressionTraits,
...this.constructor.spreadSupertraits(traits),
]),
@@ -103,7 +103,7 @@ export class TraitExpressionBuilder<
return new this.constructor(
this.expressionSuperclass,
this.constructor.uniqTraits([
this.constructor.traitsUniq([
...this.constructor.spreadSupertraits(traits),
...this.expressionTraits,
]),
@@ -148,14 +148,14 @@ export namespace TraitExpressionBuilder {
: []
)
export type UniqTraits<Traits> = (
export type TraitsUniq<Traits> = (
Traits extends [
...infer Rest,
infer El extends Trait<any, any, any, any>,
]
? IsTraitInTupleFromRight<Rest, El> extends true
? UniqTraits<Rest>
: [...UniqTraits<Rest>, El]
? TraitsUniq<Rest>
: [...TraitsUniq<Rest>, El]
: []
)
type IsTraitInTupleFromRight<Traits, T> = (