diff options
Diffstat (limited to 'source/slang/slang-lookup.cpp')
| -rw-r--r-- | source/slang/slang-lookup.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/slang/slang-lookup.cpp b/source/slang/slang-lookup.cpp index 01451470e..c9b922415 100644 --- a/source/slang/slang-lookup.cpp +++ b/source/slang/slang-lookup.cpp @@ -528,6 +528,14 @@ static void _lookUpMembersInSuperTypeDeclImpl( { ensureDecl(semantics, inheritanceDeclRef.getDecl(), DeclCheckState::CanUseBaseOfInheritanceDecl); + // Some things that are syntactically `InheritanceDecl`s don't actually + // represent a subtype/supertype relationship, and thus we shouldn't + // include members from the base type when doing lookup in the + // derived type. + // + if(inheritanceDeclRef.getDecl()->hasModifier<IgnoreForLookupModifier>()) + continue; + auto baseType = getSup(astBuilder, inheritanceDeclRef); if( auto baseDeclRefType = as<DeclRefType>(baseType) ) { |
