diff options
Diffstat (limited to 'source/slang/slang-ast-val.cpp')
| -rw-r--r-- | source/slang/slang-ast-val.cpp | 42 |
1 files changed, 3 insertions, 39 deletions
diff --git a/source/slang/slang-ast-val.cpp b/source/slang/slang-ast-val.cpp index e60c963a8..fde31c730 100644 --- a/source/slang/slang-ast-val.cpp +++ b/source/slang/slang-ast-val.cpp @@ -544,7 +544,6 @@ Val* ExtractExistentialSubtypeWitness::_substituteImplOverride(ASTBuilder* astBu return substValue; } - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! TaggedUnionSubtypeWitness !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! bool TaggedUnionSubtypeWitness::_equalsValOverride(Val* val) @@ -618,41 +617,6 @@ Val* TaggedUnionSubtypeWitness::_substituteImplOverride(ASTBuilder* astBuilder, return substWitness; } -bool DifferentialBottomSubtypeWitness::_equalsValOverride(Val* val) -{ - auto otherDiffBottomWitness = as<DifferentialBottomSubtypeWitness>(val); - if (!otherDiffBottomWitness) - return false; - - return otherDiffBottomWitness->sub && otherDiffBottomWitness->sub->equals(sub); -} - -void DifferentialBottomSubtypeWitness::_toTextOverride(StringBuilder& out) -{ - out << "DifferentialBottomSubtypeWitness(" << sub << ")"; -} - -HashCode DifferentialBottomSubtypeWitness::_getHashCodeOverride() -{ - return combineHash(3892, sub->getHashCode()); -} - -Val* DifferentialBottomSubtypeWitness::_substituteImplOverride(ASTBuilder* astBuilder, SubstitutionSet subst, int* ioDiff) -{ - int diff = 0; - - auto substSub = as<Type>(sub->substituteImpl(astBuilder, subst, &diff)); - auto substSup = as<Type>(sup->substituteImpl(astBuilder, subst, &diff)); - if (!diff) - return this; - - *ioDiff += diff; - - DifferentialBottomSubtypeWitness* substWitness = - astBuilder->create<DifferentialBottomSubtypeWitness>(substSub, substSup); - return substWitness; -} - bool ConjunctionSubtypeWitness::_equalsValOverride(Val* val) { if (auto other = as<ConjunctionSubtypeWitness>(val)) @@ -940,7 +904,7 @@ Val* PolynomialIntVal::_substituteImplOverride(ASTBuilder* astBuilder, Substitut *ioDiff += diff; if (evaluatedTerms.getCount() == 0) - return astBuilder->getOrCreate<ConstantIntVal>(type, evaluatedConstantTerm); + return astBuilder->getIntVal(type, evaluatedConstantTerm); if (diff != 0) { auto newPolynomial = astBuilder->create<PolynomialIntVal>(type); @@ -1253,7 +1217,7 @@ IntVal* PolynomialIntVal::canonicalize(ASTBuilder* builder) return terms[0]->paramFactors[0]->param; } if (terms.getCount() == 0) - return builder->getOrCreate<ConstantIntVal>(type, constantTerm); + return builder->getIntVal(type, constantTerm); return this; } @@ -1425,7 +1389,7 @@ Val* FuncCallIntVal::tryFoldImpl(ASTBuilder* astBuilder, Type* resultType, DeclR { SLANG_UNREACHABLE("constant folding of FuncCallIntVal"); } - return astBuilder->getOrCreate<ConstantIntVal>(resultType, resultValue); + return astBuilder->getIntVal(resultType, resultValue); } return nullptr; } |
