From 46529df2c4f73a4655bdd79d48004f29374a99a8 Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 6 Nov 2023 14:40:38 -0800 Subject: Fix ICE when lowering an associatedtype declref from an derived interface. (#3312) * Fix ICE when lowering an associatedtype declref from an derived interface. * Fixes. * Fix test. * Fix GLSL/SPIRV image subscript swizzle store regression. * Fix. --------- Co-authored-by: Yong He --- source/slang/slang-language-server-semantic-tokens.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'source/slang/slang-language-server-semantic-tokens.cpp') diff --git a/source/slang/slang-language-server-semantic-tokens.cpp b/source/slang/slang-language-server-semantic-tokens.cpp index 707414c5e..8fb4b1303 100644 --- a/source/slang/slang-language-server-semantic-tokens.cpp +++ b/source/slang/slang-language-server-semantic-tokens.cpp @@ -21,6 +21,8 @@ const char* kSemanticTokenTypes[] = { "string" }; +static const int kInitTokenLegnth = 6; + static_assert(SLANG_COUNT_OF(kSemanticTokenTypes) == (int)SemanticTokenType::NormalText, "kSemanticTokenTypes must match SemanticTokenType"); SemanticToken _createSemanticToken(SourceManager* manager, SourceLoc loc, Name* name) @@ -183,6 +185,17 @@ List getSemanticTokens(Linkage* linkage, Module* module, UnownedS maybeInsertToken(token); } } + else if (auto ctorDecl = as(node)) + { + if (ctorDecl->getName()) + { + SemanticToken token = _createSemanticToken( + manager, ctorDecl->getNameLoc(), ctorDecl->getName()); + token.type = SemanticTokenType::Function; + token.length = kInitTokenLegnth; + maybeInsertToken(token); + } + } else if (auto paramDecl = as(node)) { if (paramDecl->getName()) -- cgit v1.2.3