Trait expression uniq
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Julien Valverdé
2024-02-09 20:06:53 +01:00
parent 2ad7ca0a0d
commit 04f15b5b45
3 changed files with 5 additions and 2 deletions

BIN
bun.lockb

Binary file not shown.

View File

@@ -29,10 +29,12 @@
}, },
"dependencies": { "dependencies": {
"hotscript": "^1.0.13", "hotscript": "^1.0.13",
"lodash-es": "^4.17.21",
"type-fest": "^4.10.2" "type-fest": "^4.10.2"
}, },
"devDependencies": { "devDependencies": {
"@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-node-resolve": "^15.2.3",
"@types/lodash-es": "^4.17.12",
"bun-types": "latest", "bun-types": "latest",
"npm-check-updates": "^16.14.14", "npm-check-updates": "^16.14.14",
"npm-sort": "^0.0.4", "npm-sort": "^0.0.4",

View File

@@ -1,4 +1,5 @@
import { Call, Fn, Pipe, Tuples } from "hotscript" import { Call, Fn, Pipe, Tuples } from "hotscript"
import { uniq } from "lodash-es"
import { AbstractClass } from "type-fest" import { AbstractClass } from "type-fest"
import { Trait } from "./Trait" import { Trait } from "./Trait"
import { TraitExpression, emptyTraitExpression } from "./TraitExpression" import { TraitExpression, emptyTraitExpression } from "./TraitExpression"
@@ -96,8 +97,8 @@ class TraitExpressionBuilder<
return new TraitExpressionBuilder( return new TraitExpressionBuilder(
new TraitExpression( new TraitExpression(
this.expression.superclass, this.expression.superclass,
[...this.expression.ownTraits, ...traits], uniq([...this.expression.ownTraits, ...traits]) as [...OwnTraits, ...Traits],
[...this.expression.allTraits, ...this.spreadSupertraits(traits)], uniq([...this.expression.allTraits, ...this.spreadSupertraits(traits)]) as [...AllTraits, ...SpreadSupertraits<Traits>],
) )
) )
} }