Skip to content

Commit f28cbe4

Browse files
authored
Remove unicodeES5Identifier and co (#1203)
1 parent 00191c5 commit f28cbe4

19 files changed

+1283
-1423
lines changed

internal/checker/nodebuilderimpl.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,7 @@ func (b *nodeBuilderImpl) createExpressionFromSymbolChain(chain []*ast.Symbol, i
632632
return b.f.NewStringLiteral(b.getSpecifierForModuleSymbol(symbol, core.ResolutionModeNone))
633633
}
634634

635-
if index == 0 || canUsePropertyAccess(symbolName, b.ch.languageVersion) {
635+
if index == 0 || canUsePropertyAccess(symbolName) {
636636
identifier := b.f.NewIdentifier(symbolName)
637637
b.e.AddEmitFlags(identifier, printer.EFNoAsciiEscaping)
638638
// !!! TODO: smuggle type arguments out
@@ -667,16 +667,16 @@ func (b *nodeBuilderImpl) createExpressionFromSymbolChain(chain []*ast.Symbol, i
667667
return b.f.NewElementAccessExpression(b.createExpressionFromSymbolChain(chain, index-1), nil, expression, ast.NodeFlagsNone)
668668
}
669669

670-
func canUsePropertyAccess(name string, languageVersion core.ScriptTarget) bool {
670+
func canUsePropertyAccess(name string) bool {
671671
if len(name) == 0 {
672672
return false
673673
}
674674
// TODO: in strada, this only used `isIdentifierStart` on the first character, while this checks the whole string for validity
675675
// - possible strada bug?
676676
if strings.HasPrefix(name, "#") {
677-
return len(name) > 1 && scanner.IsIdentifierText(name[1:], languageVersion, core.LanguageVariantStandard)
677+
return len(name) > 1 && scanner.IsIdentifierText(name[1:], core.LanguageVariantStandard)
678678
}
679-
return scanner.IsIdentifierText(name, languageVersion, core.LanguageVariantStandard)
679+
return scanner.IsIdentifierText(name, core.LanguageVariantStandard)
680680
}
681681

682682
func startsWithSingleOrDoubleQuote(str string) bool {
@@ -705,7 +705,7 @@ func (b *nodeBuilderImpl) getNameOfSymbolFromNameType(symbol *ast.Symbol) string
705705
case jsnum.Number:
706706
name = v.String()
707707
}
708-
if !scanner.IsIdentifierText(name, b.ch.compilerOptions.GetEmitScriptTarget(), core.LanguageVariantStandard) && !isNumericLiteralName(name) {
708+
if !scanner.IsIdentifierText(name, core.LanguageVariantStandard) && !isNumericLiteralName(name) {
709709
return b.ch.valueToString(nameType.AsLiteralType().value)
710710
}
711711
if isNumericLiteralName(name) && strings.HasPrefix(name, "-") {
@@ -1976,9 +1976,9 @@ func (b *nodeBuilderImpl) trackComputedName(accessExpression *ast.Node, enclosin
19761976
}
19771977
}
19781978

1979-
func (b *nodeBuilderImpl) createPropertyNameNodeForIdentifierOrLiteral(name string, target core.ScriptTarget, _singleQuote bool, stringNamed bool, isMethod bool) *ast.Node {
1979+
func (b *nodeBuilderImpl) createPropertyNameNodeForIdentifierOrLiteral(name string, _singleQuote bool, stringNamed bool, isMethod bool) *ast.Node {
19801980
isMethodNamedNew := isMethod && name == "new"
1981-
if !isMethodNamedNew && scanner.IsIdentifierText(name, target, core.LanguageVariantStandard) {
1981+
if !isMethodNamedNew && scanner.IsIdentifierText(name, core.LanguageVariantStandard) {
19821982
return b.f.NewIdentifier(name)
19831983
}
19841984
if !stringNamed && !isMethodNamedNew && isNumericLiteralName(name) && jsnum.FromString(name) >= 0 {
@@ -2020,7 +2020,7 @@ func (b *nodeBuilderImpl) getPropertyNameNodeForSymbol(symbol *ast.Symbol) *ast.
20202020
if fromNameType != nil {
20212021
return fromNameType
20222022
}
2023-
return b.createPropertyNameNodeForIdentifierOrLiteral(symbol.Name, b.ch.compilerOptions.GetEmitScriptTarget(), singleQuote, stringNamed, isMethod)
2023+
return b.createPropertyNameNodeForIdentifierOrLiteral(symbol.Name, singleQuote, stringNamed, isMethod)
20242024
}
20252025

20262026
// See getNameForSymbolFromNameType for a stringy equivalent
@@ -2040,14 +2040,14 @@ func (b *nodeBuilderImpl) getPropertyNameNodeForSymbolFromNameType(symbol *ast.S
20402040
case string:
20412041
name = nameType.AsLiteralType().value.(string)
20422042
}
2043-
if !scanner.IsIdentifierText(name, b.ch.compilerOptions.GetEmitScriptTarget(), core.LanguageVariantStandard) && (stringNamed || !isNumericLiteralName(name)) {
2043+
if !scanner.IsIdentifierText(name, core.LanguageVariantStandard) && (stringNamed || !isNumericLiteralName(name)) {
20442044
// !!! TODO: set singleQuote
20452045
return b.f.NewStringLiteral(name)
20462046
}
20472047
if isNumericLiteralName(name) && name[0] == '-' {
20482048
return b.f.NewComputedPropertyName(b.f.NewPrefixUnaryExpression(ast.KindMinusToken, b.f.NewNumericLiteral(name[1:])))
20492049
}
2050-
return b.createPropertyNameNodeForIdentifierOrLiteral(name, b.ch.compilerOptions.GetEmitScriptTarget(), singleQuote, stringNamed, isMethod)
2050+
return b.createPropertyNameNodeForIdentifierOrLiteral(name, singleQuote, stringNamed, isMethod)
20512051
}
20522052
if nameType.flags&TypeFlagsUniqueESSymbol != 0 {
20532053
return b.f.NewComputedPropertyName(b.symbolToExpression(nameType.AsUniqueESSymbolType().symbol, ast.SymbolFlagsValue))
@@ -2737,7 +2737,7 @@ func (b *nodeBuilderImpl) typeToTypeNode(t *Type) *ast.TypeNode {
27372737
return parentName
27382738
}
27392739
memberName := ast.SymbolName(t.symbol)
2740-
if scanner.IsIdentifierText(memberName, core.ScriptTargetES5, core.LanguageVariantStandard) {
2740+
if scanner.IsIdentifierText(memberName, core.LanguageVariantStandard) {
27412741
return b.appendReferenceToType(parentName /* as TypeReferenceNode | ImportTypeNode */, b.f.NewTypeReferenceNode(b.f.NewIdentifier(memberName), nil /*typeArguments*/))
27422742
}
27432743
if ast.IsImportTypeNode(parentName) {

internal/ls/completions.go

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1555,7 +1555,6 @@ func (l *LanguageService) completionInfoFromData(
15551555
position,
15561556
file,
15571557
program,
1558-
compilerOptions.GetEmitScriptTarget(),
15591558
preferences,
15601559
compilerOptions,
15611560
clientOptions,
@@ -1593,7 +1592,6 @@ func (l *LanguageService) completionInfoFromData(
15931592
file,
15941593
position,
15951594
&uniqueNames,
1596-
compilerOptions.GetEmitScriptTarget(),
15971595
sortedEntries,
15981596
)
15991597
}
@@ -1617,7 +1615,6 @@ func (l *LanguageService) getCompletionEntriesFromSymbols(
16171615
position int,
16181616
file *ast.SourceFile,
16191617
program *compiler.Program,
1620-
target core.ScriptTarget,
16211618
preferences *UserPreferences,
16221619
compilerOptions *core.CompilerOptions,
16231620
clientOptions *lsproto.CompletionClientCapabilities,
@@ -1637,7 +1634,6 @@ func (l *LanguageService) getCompletionEntriesFromSymbols(
16371634
origin := data.symbolToOriginInfoMap[symbolId]
16381635
name, needsConvertPropertyAccess := getCompletionEntryDisplayNameForSymbol(
16391636
symbol,
1640-
target,
16411637
origin,
16421638
data.completionKind,
16431639
data.isJsxIdentifierExpected,
@@ -1951,8 +1947,7 @@ func (l *LanguageService) createCompletionItem(
19511947

19521948
parentNamedImportOrExport := ast.FindAncestor(data.location, isNamedImportsOrExports)
19531949
if parentNamedImportOrExport != nil {
1954-
languageVersion := compilerOptions.GetEmitScriptTarget()
1955-
if !scanner.IsIdentifierText(name, languageVersion, core.LanguageVariantStandard) {
1950+
if !scanner.IsIdentifierText(name, core.LanguageVariantStandard) {
19561951
insertText = quotePropertyName(file, preferences, name)
19571952

19581953
if parentNamedImportOrExport.Kind == ast.KindNamedImports {
@@ -1962,7 +1957,7 @@ func (l *LanguageService) createCompletionItem(
19621957
scanner.SetText(file.Text())
19631958
scanner.ResetPos(position)
19641959
if !(scanner.Scan() == ast.KindAsKeyword && scanner.Scan() == ast.KindIdentifier) {
1965-
insertText += " as " + generateIdentifierForArbitraryString(name, languageVersion)
1960+
insertText += " as " + generateIdentifierForArbitraryString(name)
19661961
}
19671962
}
19681963
} else if parentNamedImportOrExport.Kind == ast.KindNamedImports {
@@ -2273,7 +2268,6 @@ func shouldIncludeSymbol(
22732268

22742269
func getCompletionEntryDisplayNameForSymbol(
22752270
symbol *ast.Symbol,
2276-
target core.ScriptTarget,
22772271
origin *symbolOriginInfo,
22782272
completionKind CompletionKind,
22792273
isJsxIdentifierExpected bool,
@@ -2299,7 +2293,7 @@ func getCompletionEntryDisplayNameForSymbol(
22992293

23002294
variant := core.IfElse(isJsxIdentifierExpected, core.LanguageVariantJSX, core.LanguageVariantStandard)
23012295
// name is a valid identifier or private identifier text
2302-
if scanner.IsIdentifierText(name, target, variant) ||
2296+
if scanner.IsIdentifierText(name, variant) ||
23032297
symbol.ValueDeclaration != nil && ast.IsPrivateIdentifierClassElementDeclaration(symbol.ValueDeclaration) {
23042298
return name, false
23052299
}
@@ -2819,7 +2813,7 @@ func isNamedImportsOrExports(node *ast.Node) bool {
28192813
return ast.IsNamedImports(node) || ast.IsNamedExports(node)
28202814
}
28212815

2822-
func generateIdentifierForArbitraryString(text string, languageVersion core.ScriptTarget) string {
2816+
func generateIdentifierForArbitraryString(text string) string {
28232817
needsUnderscore := false
28242818
identifier := ""
28252819
var ch rune
@@ -2830,9 +2824,9 @@ func generateIdentifierForArbitraryString(text string, languageVersion core.Scri
28302824
ch, size = utf8.DecodeRuneInString(text[pos:])
28312825
var validChar bool
28322826
if pos == 0 {
2833-
validChar = scanner.IsIdentifierStart(ch, languageVersion)
2827+
validChar = scanner.IsIdentifierStart(ch)
28342828
} else {
2835-
validChar = scanner.IsIdentifierPart(ch, languageVersion)
2829+
validChar = scanner.IsIdentifierPart(ch)
28362830
}
28372831
if size > 0 && validChar {
28382832
if needsUnderscore {
@@ -3121,7 +3115,6 @@ func getJSCompletionEntries(
31213115
file *ast.SourceFile,
31223116
position int,
31233117
uniqueNames *collections.Set[string],
3124-
target core.ScriptTarget,
31253118
sortedEntries []*lsproto.CompletionItem,
31263119
) []*lsproto.CompletionItem {
31273120
nameTable := getNameTable(file)
@@ -3130,7 +3123,7 @@ func getJSCompletionEntries(
31303123
if pos == position {
31313124
continue
31323125
}
3133-
if !uniqueNames.Has(name) && scanner.IsIdentifierText(name, target, core.LanguageVariantStandard) {
3126+
if !uniqueNames.Has(name) && scanner.IsIdentifierText(name, core.LanguageVariantStandard) {
31343127
uniqueNames.Add(name)
31353128
sortedEntries = core.InsertSorted(
31363129
sortedEntries,

internal/ls/findallreferences.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -835,8 +835,8 @@ func getPossibleSymbolReferencePositions(sourceFile *ast.SourceFile, symbolName
835835
// before and after it have to be a non-identifier char).
836836
endPosition := position + symbolNameLength
837837

838-
if (position == 0 || !scanner.IsIdentifierPart(rune(text[position-1]), core.ScriptTargetLatest)) &&
839-
(endPosition == sourceLength || !scanner.IsIdentifierPart(rune(text[endPosition]), core.ScriptTargetLatest)) {
838+
if (position == 0 || !scanner.IsIdentifierPart(rune(text[position-1]))) &&
839+
(endPosition == sourceLength || !scanner.IsIdentifierPart(rune(text[endPosition]))) {
840840
// Found a real match. Keep searching.
841841
positions = append(positions, position)
842842
}

internal/ls/string_completions.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,6 @@ func (l *LanguageService) convertStringLiteralCompletions(
114114
position,
115115
file,
116116
program,
117-
core.ScriptTargetESNext,
118117
preferences,
119118
options,
120119
clientOptions,

0 commit comments

Comments
 (0)