From 08b75b3cb2e80047d8e49a71391ee321053bfb10 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 21 May 2025 11:11:54 -0700 Subject: [PATCH] Only create and track possible patterns when dealing with string literals. --- internal/binder/binder.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/binder/binder.go b/internal/binder/binder.go index ad96cb53de..5f18fa716a 100644 --- a/internal/binder/binder.go +++ b/internal/binder/binder.go @@ -797,18 +797,18 @@ func (b *Binder) bindModuleDeclaration(node *ast.Node) { if ast.IsModuleAugmentationExternal(node) { b.declareModuleSymbol(node) } else { - var pattern core.Pattern name := node.AsModuleDeclaration().Name() + symbol := b.declareSymbolAndAddToSymbolTable(node, ast.SymbolFlagsValueModule, ast.SymbolFlagsValueModuleExcludes) + if ast.IsStringLiteral(name) { - pattern = core.TryParsePattern(name.AsStringLiteral().Text) + pattern := core.TryParsePattern(name.AsStringLiteral().Text) if !pattern.IsValid() { + // An invalid pattern - must have multiple wildcards. b.errorOnFirstToken(name, diagnostics.Pattern_0_can_have_at_most_one_Asterisk_character, name.AsStringLiteral().Text) + } else if pattern.StarIndex >= 0 { + b.file.PatternAmbientModules = append(b.file.PatternAmbientModules, &ast.PatternAmbientModule{Pattern: pattern, Symbol: symbol}) } } - symbol := b.declareSymbolAndAddToSymbolTable(node, ast.SymbolFlagsValueModule, ast.SymbolFlagsValueModuleExcludes) - if pattern.IsValid() && pattern.StarIndex >= 0 { - b.file.PatternAmbientModules = append(b.file.PatternAmbientModules, &ast.PatternAmbientModule{Pattern: pattern, Symbol: symbol}) - } } } else { state := b.declareModuleSymbol(node)