From ef2f92fee8463fff2bf66f07eac228ff38df319f Mon Sep 17 00:00:00 2001 From: Tim Foley Date: Sun, 21 Jan 2018 17:23:03 -0800 Subject: Trying to get generic extensions to work - Don't drop specializations on a method when adding it to requirement dictionary - Handle extension declarations under a generic when emitting to IR --- source/slang/lower-to-ir.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'source/slang/lower-to-ir.cpp') diff --git a/source/slang/lower-to-ir.cpp b/source/slang/lower-to-ir.cpp index 5d710725a..42d6dc303 100644 --- a/source/slang/lower-to-ir.cpp +++ b/source/slang/lower-to-ir.cpp @@ -3734,6 +3734,8 @@ struct DeclLoweringVisitor : DeclVisitor LoweredValInfo visitGenericDecl(GenericDecl * genDecl) { + // TODO: Should this just always visit/lower the inner decl? + if (auto innerFuncDecl = genDecl->inner->As()) return lowerFuncDecl(innerFuncDecl); else if (auto innerStructDecl = genDecl->inner->As()) @@ -3741,6 +3743,10 @@ struct DeclLoweringVisitor : DeclVisitor visitAggTypeDecl(innerStructDecl); return LoweredValInfo(); } + else if( auto extensionDecl = genDecl->inner->As() ) + { + return visitExtensionDecl(extensionDecl); + } SLANG_RELEASE_ASSERT(false); UNREACHABLE_RETURN(LoweredValInfo()); } -- cgit v1.2.3