summaryrefslogtreecommitdiff
path: root/source/slang/val-defs.h
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2018-01-09 10:50:44 -0800
committerTim Foley <tfoleyNV@users.noreply.github.com>2018-01-09 10:50:44 -0800
commit8daafcc2e4bf7b2dfb66d7a3b7ac60c86b2d926c (patch)
treeb7fac301e3c4d1b006af70584feeb45af191aab6 /source/slang/val-defs.h
parent3d435f7321c3f9241d33a0f7521573f21b548186 (diff)
bruteforce implementation of witness table resolution for associated (#358)
Diffstat (limited to 'source/slang/val-defs.h')
-rw-r--r--source/slang/val-defs.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/source/slang/val-defs.h b/source/slang/val-defs.h
index 4ecd5a51b..f0f830cd2 100644
--- a/source/slang/val-defs.h
+++ b/source/slang/val-defs.h
@@ -85,6 +85,9 @@ END_SYNTAX_CLASS()
ABSTRACT_SYNTAX_CLASS(SubtypeWitness, Witness)
FIELD(RefPtr<Type>, sub)
FIELD(RefPtr<Type>, sup)
+ RAW(
+ virtual DeclRef<Decl> getLastStepDeclRef() = 0;
+ )
END_SYNTAX_CLASS()
// A witness that one type is a subtype of another
@@ -96,6 +99,10 @@ RAW(
virtual String ToString() override;
virtual int GetHashCode() override;
virtual RefPtr<Val> SubstituteImpl(Substitutions * subst, int * ioDiff) override;
+ virtual DeclRef<Decl> getLastStepDeclRef() override
+ {
+ return declRef;
+ }
)
END_SYNTAX_CLASS()
@@ -111,6 +118,10 @@ RAW(
virtual String ToString() override;
virtual int GetHashCode() override;
virtual RefPtr<Val> SubstituteImpl(Substitutions * subst, int * ioDiff) override;
+ virtual DeclRef<Decl> getLastStepDeclRef() override
+ {
+ return midToSup->getLastStepDeclRef();
+ }
)
END_SYNTAX_CLASS()