diff options
Diffstat (limited to 'source/slang/slang-syntax.cpp')
| -rw-r--r-- | source/slang/slang-syntax.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/source/slang/slang-syntax.cpp b/source/slang/slang-syntax.cpp index ab0dfcd74..b6fd8936e 100644 --- a/source/slang/slang-syntax.cpp +++ b/source/slang/slang-syntax.cpp @@ -17,7 +17,10 @@ void printDiagnosticArg(StringBuilder& sb, Decl* decl) { if (!decl) return; - sb << getText(decl->getName()); + if (decl->getName() && decl->getName()->text.getLength()) + sb << getText(decl->getName()); + else + printDiagnosticArg(sb, decl->astNodeType); } void printDiagnosticArg(StringBuilder& sb, DeclRefBase* declRefBase) @@ -92,6 +95,7 @@ void printDiagnosticArg(StringBuilder& sb, ASTNodeType nodeType) case ASTNodeType::EmptyDecl: sb << "empty"; break; case ASTNodeType::SyntaxDecl: sb << "syntax"; break; case ASTNodeType::DeclGroup: sb << "decl-group"; break; + case ASTNodeType::RequireCapabilityDecl: sb << "__require_capability"; break; default: sb << "decl"; break; } } @@ -862,6 +866,18 @@ Decl* getParentDecl(Decl* decl) return decl; } +Decl* getParentAggTypeDecl(Decl* decl) +{ + decl = decl->parentDecl; + while (decl) + { + if (as<AggTypeDecl>(decl)) + return decl; + decl = decl->parentDecl; + } + return nullptr; +} + Decl* getParentFunc(Decl* decl) { while (decl) |
