From 393185196ed65a9eeaf9502edbf3dcce87337d81 Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 22 Aug 2022 09:43:05 -0700 Subject: Support compile-time constant int val in the form of polynomials. (#2372) Co-authored-by: Yong He --- source/slang/slang-language-server.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'source/slang/slang-language-server.cpp') diff --git a/source/slang/slang-language-server.cpp b/source/slang/slang-language-server.cpp index da72ea65e..d3be5c4dc 100644 --- a/source/slang/slang-language-server.cpp +++ b/source/slang/slang-language-server.cpp @@ -243,7 +243,9 @@ String getDeclSignatureString(DeclRef declRef, WorkspaceVersion* version) DiagnosticSink sink; SharedSemanticsContext semanticContext(version->linkage, getModule(varDecl), &sink); SemanticsVisitor semanticsVisitor(&semanticContext); - if (auto intVal = semanticsVisitor.tryFoldIntegerConstantExpression(varDecl->initExpr, nullptr)) + if (auto intVal = semanticsVisitor.tryFoldIntegerConstantExpression( + declRef.substitute(version->linkage->getASTBuilder(), varDecl->initExpr), + nullptr)) { if (auto constantInt = as(intVal)) { @@ -257,6 +259,11 @@ String getDeclSignatureString(DeclRef declRef, WorkspaceVersion* version) sb << constantInt->value; } } + else + { + sb << " = "; + intVal->toText(sb); + } } } } -- cgit v1.2.3