From a74a5494b34e2b41a294042ab8b3e7bce115dcba Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 16 Jan 2018 15:38:36 -0500 Subject: bug fixes to get falcor example shader code to compile. 1. prevent cyclic lookups when an interface inherits transitively from itself. 2. in `createGlobalGenericParamSubstitution`, create a default substitution for the base type declref before using it to lookup the witness table. --- source/slang/val-defs.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'source/slang/val-defs.h') diff --git a/source/slang/val-defs.h b/source/slang/val-defs.h index 1fe3bfe44..d83cda85c 100644 --- a/source/slang/val-defs.h +++ b/source/slang/val-defs.h @@ -90,6 +90,18 @@ ABSTRACT_SYNTAX_CLASS(SubtypeWitness, Witness) ) END_SYNTAX_CLASS() +SYNTAX_CLASS(TypeEqualityWitness, SubtypeWitness) +RAW( + virtual bool EqualsVal(Val* val) override; + virtual String ToString() override; + virtual int GetHashCode() override; + virtual RefPtr SubstituteImpl(SubstitutionSet subst, int * ioDiff) override; + virtual DeclRef getLastStepDeclRef() override + { + return DeclRef(); + } +) +END_SYNTAX_CLASS() // A witness that one type is a subtype of another // because some in-scope declaration says so SYNTAX_CLASS(DeclaredSubtypeWitness, SubtypeWitness) -- cgit v1.2.3