summaryrefslogtreecommitdiff
path: root/source/slang/type-defs.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/type-defs.h')
-rw-r--r--source/slang/type-defs.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/source/slang/type-defs.h b/source/slang/type-defs.h
index 25bb5387f..6e067c990 100644
--- a/source/slang/type-defs.h
+++ b/source/slang/type-defs.h
@@ -439,3 +439,17 @@ protected:
virtual RefPtr<Type> CreateCanonicalType() override;
)
END_SYNTAX_CLASS()
+
+// The concrete type for a value wrapped in an existential, accessible
+// when the existential is "opened" in some context.
+SYNTAX_CLASS(ExtractExistentialType, Type)
+RAW(
+ DeclRef<VarDeclBase> declRef;
+
+ virtual String ToString() override;
+ virtual bool EqualsImpl(Type * type) override;
+ virtual int GetHashCode() override;
+ virtual RefPtr<Type> CreateCanonicalType() override;
+ virtual RefPtr<Val> SubstituteImpl(SubstitutionSet subst, int* ioDiff) override;
+)
+END_SYNTAX_CLASS()