diff options
Diffstat (limited to 'source/slang/slang-check-type.cpp')
| -rw-r--r-- | source/slang/slang-check-type.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/source/slang/slang-check-type.cpp b/source/slang/slang-check-type.cpp index 0786d3166..ea808e456 100644 --- a/source/slang/slang-check-type.cpp +++ b/source/slang/slang-check-type.cpp @@ -11,9 +11,12 @@ namespace Slang TypeExp typeExp, DiagnosticSink* sink) { - SemanticsVisitor visitor( + SharedSemanticsContext sharedSemanticsContext( linkage, sink); + SemanticsVisitor visitor(&sharedSemanticsContext); + + auto typeOut = visitor.CheckProperType(typeExp); return typeOut.type; } @@ -185,7 +188,7 @@ namespace Slang // auto genericDeclRef = genericDeclRefType->GetDeclRef(); - checkDecl(genericDeclRef.decl); + ensureDecl(genericDeclRef, DeclCheckState::CanSpecializeGeneric); List<RefPtr<Expr>> args; for (RefPtr<Decl> member : genericDeclRef.getDecl()->Members) { @@ -331,7 +334,7 @@ namespace Slang declRef).as<VectorExpressionType>(); } - RefPtr<Expr> SemanticsVisitor::visitSharedTypeExpr(SharedTypeExpr* expr) + RefPtr<Expr> SemanticsExprVisitor::visitSharedTypeExpr(SharedTypeExpr* expr) { if (!expr->type.Ptr()) { @@ -341,7 +344,7 @@ namespace Slang return expr; } - RefPtr<Expr> SemanticsVisitor::visitTaggedUnionTypeExpr(TaggedUnionTypeExpr* expr) + RefPtr<Expr> SemanticsExprVisitor::visitTaggedUnionTypeExpr(TaggedUnionTypeExpr* expr) { // We have an expression of the form `__TaggedUnion(A, B, ...)` // which will evaluate to a tagged-union type over `A`, `B`, etc. |
