Skip to content

Commit b1212f1

Browse files
dependabot[bot]github-actions[bot]buke
authored
deps(deps): bump microsoft/typescript-go from 5ac8497 to dcebe53 (#51)
* deps(deps): bump microsoft/typescript-go from `5ac8497` to `dcebe53` Bumps [microsoft/typescript-go](https://github.com/microsoft/typescript-go) from `5ac8497` to `dcebe53`. - [Commits](microsoft/typescript-go@5ac8497...dcebe53) --- updated-dependencies: - dependency-name: microsoft/typescript-go dependency-version: dcebe5348dc64b60a4743ffd148281ee000f2af1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> * chore(sync): mirror internal packages into pkg/ (auto) (#54) Co-authored-by: buke <1013738+buke@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: buke <1013738+buke@users.noreply.github.com>
1 parent be81386 commit b1212f1

File tree

413 files changed

+12883
-1370
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

413 files changed

+12883
-1370
lines changed

microsoft/typescript-go

Submodule typescript-go updated 412 files

pkg/ast/ast.go

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6141,15 +6141,16 @@ type StringLiteral struct {
61416141
LiteralLikeBase
61426142
}
61436143

6144-
func (f *NodeFactory) NewStringLiteral(text string) *Node {
6144+
func (f *NodeFactory) NewStringLiteral(text string, flags TokenFlags) *Node {
61456145
data := f.stringLiteralPool.New()
61466146
data.Text = text
6147+
data.TokenFlags = flags & TokenFlagsStringLiteralFlags
61476148
f.textCount++
61486149
return f.newNode(KindStringLiteral, data)
61496150
}
61506151

61516152
func (node *StringLiteral) Clone(f NodeFactoryCoercible) *Node {
6152-
return cloneNode(f.AsNodeFactory().NewStringLiteral(node.Text), node.AsNode(), f.AsNodeFactory().hooks)
6153+
return cloneNode(f.AsNodeFactory().NewStringLiteral(node.Text, node.TokenFlags), node.AsNode(), f.AsNodeFactory().hooks)
61536154
}
61546155

61556156
func IsStringLiteral(node *Node) bool {
@@ -6163,15 +6164,16 @@ type NumericLiteral struct {
61636164
LiteralLikeBase
61646165
}
61656166

6166-
func (f *NodeFactory) NewNumericLiteral(text string) *Node {
6167+
func (f *NodeFactory) NewNumericLiteral(text string, flags TokenFlags) *Node {
61676168
data := f.numericLiteralPool.New()
61686169
data.Text = text
6170+
data.TokenFlags = flags & TokenFlagsNumericLiteralFlags
61696171
f.textCount++
61706172
return f.newNode(KindNumericLiteral, data)
61716173
}
61726174

61736175
func (node *NumericLiteral) Clone(f NodeFactoryCoercible) *Node {
6174-
return cloneNode(f.AsNodeFactory().NewNumericLiteral(node.Text), node.AsNode(), f.AsNodeFactory().hooks)
6176+
return cloneNode(f.AsNodeFactory().NewNumericLiteral(node.Text, node.TokenFlags), node.AsNode(), f.AsNodeFactory().hooks)
61756177
}
61766178

61776179
func IsNumericLiteral(node *Node) bool {
@@ -6185,15 +6187,16 @@ type BigIntLiteral struct {
61856187
LiteralLikeBase
61866188
}
61876189

6188-
func (f *NodeFactory) NewBigIntLiteral(text string) *Node {
6190+
func (f *NodeFactory) NewBigIntLiteral(text string, flags TokenFlags) *Node {
61896191
data := &BigIntLiteral{}
61906192
data.Text = text
6193+
data.TokenFlags = flags & TokenFlagsNumericLiteralFlags
61916194
f.textCount++
61926195
return f.newNode(KindBigIntLiteral, data)
61936196
}
61946197

61956198
func (node *BigIntLiteral) Clone(f NodeFactoryCoercible) *Node {
6196-
return cloneNode(f.AsNodeFactory().NewBigIntLiteral(node.Text), node.AsNode(), f.AsNodeFactory().hooks)
6199+
return cloneNode(f.AsNodeFactory().NewBigIntLiteral(node.Text, node.TokenFlags), node.AsNode(), f.AsNodeFactory().hooks)
61976200
}
61986201

61996202
func (node *BigIntLiteral) computeSubtreeFacts() SubtreeFacts {
@@ -6211,15 +6214,16 @@ type RegularExpressionLiteral struct {
62116214
LiteralLikeBase
62126215
}
62136216

6214-
func (f *NodeFactory) NewRegularExpressionLiteral(text string) *Node {
6217+
func (f *NodeFactory) NewRegularExpressionLiteral(text string, flags TokenFlags) *Node {
62156218
data := &RegularExpressionLiteral{}
62166219
data.Text = text
6220+
data.TokenFlags = flags & TokenFlagsRegularExpressionLiteralFlags
62176221
f.textCount++
62186222
return f.newNode(KindRegularExpressionLiteral, data)
62196223
}
62206224

62216225
func (node *RegularExpressionLiteral) Clone(f NodeFactoryCoercible) *Node {
6222-
return cloneNode(f.AsNodeFactory().NewRegularExpressionLiteral(node.Text), node.AsNode(), f.AsNodeFactory().hooks)
6226+
return cloneNode(f.AsNodeFactory().NewRegularExpressionLiteral(node.Text, node.TokenFlags), node.AsNode(), f.AsNodeFactory().hooks)
62236227
}
62246228

62256229
func IsRegularExpressionLiteral(node *Node) bool {
@@ -6233,15 +6237,16 @@ type NoSubstitutionTemplateLiteral struct {
62336237
TemplateLiteralLikeBase
62346238
}
62356239

6236-
func (f *NodeFactory) NewNoSubstitutionTemplateLiteral(text string) *Node {
6240+
func (f *NodeFactory) NewNoSubstitutionTemplateLiteral(text string, templateFlags TokenFlags) *Node {
62376241
data := &NoSubstitutionTemplateLiteral{}
62386242
data.Text = text
6243+
data.TemplateFlags = templateFlags & TokenFlagsTemplateLiteralLikeFlags
62396244
f.textCount++
62406245
return f.newNode(KindNoSubstitutionTemplateLiteral, data)
62416246
}
62426247

62436248
func (node *NoSubstitutionTemplateLiteral) Clone(f NodeFactoryCoercible) *Node {
6244-
return cloneNode(f.AsNodeFactory().NewNoSubstitutionTemplateLiteral(node.Text), node.AsNode(), f.AsNodeFactory().hooks)
6249+
return cloneNode(f.AsNodeFactory().NewNoSubstitutionTemplateLiteral(node.Text, node.TemplateFlags), node.AsNode(), f.AsNodeFactory().hooks)
62456250
}
62466251

62476252
// BinaryExpression
@@ -8722,7 +8727,7 @@ func (f *NodeFactory) NewTemplateHead(text string, rawText string, templateFlags
87228727
data := &TemplateHead{}
87238728
data.Text = text
87248729
data.RawText = rawText
8725-
data.TemplateFlags = templateFlags
8730+
data.TemplateFlags = templateFlags & TokenFlagsTemplateLiteralLikeFlags
87268731
f.textCount++
87278732
return f.newNode(KindTemplateHead, data)
87288733
}
@@ -8746,7 +8751,7 @@ func (f *NodeFactory) NewTemplateMiddle(text string, rawText string, templateFla
87468751
data := &TemplateMiddle{}
87478752
data.Text = text
87488753
data.RawText = rawText
8749-
data.TemplateFlags = templateFlags
8754+
data.TemplateFlags = templateFlags & TokenFlagsTemplateLiteralLikeFlags
87508755
f.textCount++
87518756
return f.newNode(KindTemplateMiddle, data)
87528757
}
@@ -8770,7 +8775,7 @@ func (f *NodeFactory) NewTemplateTail(text string, rawText string, templateFlags
87708775
data := &TemplateTail{}
87718776
data.Text = text
87728777
data.RawText = rawText
8773-
data.TemplateFlags = templateFlags
8778+
data.TemplateFlags = templateFlags & TokenFlagsTemplateLiteralLikeFlags
87748779
f.textCount++
87758780
return f.newNode(KindTemplateTail, data)
87768781
}
@@ -10980,33 +10985,23 @@ func createToken(kind Kind, file *SourceFile, pos, end int, flags TokenFlags) *N
1098010985
text := file.text[pos:end]
1098110986
switch kind {
1098210987
case KindNumericLiteral:
10983-
literal := file.tokenFactory.NewNumericLiteral(text)
10984-
literal.AsNumericLiteral().TokenFlags = flags & TokenFlagsNumericLiteralFlags
10985-
return literal
10988+
return file.tokenFactory.NewNumericLiteral(text, flags)
1098610989
case KindBigIntLiteral:
10987-
literal := file.tokenFactory.NewBigIntLiteral(text)
10988-
literal.AsBigIntLiteral().TokenFlags = flags & TokenFlagsNumericLiteralFlags
10989-
return literal
10990+
return file.tokenFactory.NewBigIntLiteral(text, flags)
1099010991
case KindStringLiteral:
10991-
literal := file.tokenFactory.NewStringLiteral(text)
10992-
literal.AsStringLiteral().TokenFlags = flags & TokenFlagsStringLiteralFlags
10993-
return literal
10992+
return file.tokenFactory.NewStringLiteral(text, flags)
1099410993
case KindJsxText, KindJsxTextAllWhiteSpaces:
1099510994
return file.tokenFactory.NewJsxText(text, kind == KindJsxTextAllWhiteSpaces)
1099610995
case KindRegularExpressionLiteral:
10997-
literal := file.tokenFactory.NewRegularExpressionLiteral(text)
10998-
literal.AsRegularExpressionLiteral().TokenFlags = flags & TokenFlagsRegularExpressionLiteralFlags
10999-
return literal
10996+
return file.tokenFactory.NewRegularExpressionLiteral(text, flags)
1100010997
case KindNoSubstitutionTemplateLiteral:
11001-
literal := file.tokenFactory.NewNoSubstitutionTemplateLiteral(text)
11002-
literal.AsNoSubstitutionTemplateLiteral().TokenFlags = flags & TokenFlagsTemplateLiteralLikeFlags
11003-
return literal
10998+
return file.tokenFactory.NewNoSubstitutionTemplateLiteral(text, flags)
1100410999
case KindTemplateHead:
11005-
return file.tokenFactory.NewTemplateHead(text, "" /*rawText*/, flags&TokenFlagsTemplateLiteralLikeFlags)
11000+
return file.tokenFactory.NewTemplateHead(text, "" /*rawText*/, flags)
1100611001
case KindTemplateMiddle:
11007-
return file.tokenFactory.NewTemplateMiddle(text, "" /*rawText*/, flags&TokenFlagsTemplateLiteralLikeFlags)
11002+
return file.tokenFactory.NewTemplateMiddle(text, "" /*rawText*/, flags)
1100811003
case KindTemplateTail:
11009-
return file.tokenFactory.NewTemplateTail(text, "" /*rawText*/, flags&TokenFlagsTemplateLiteralLikeFlags)
11004+
return file.tokenFactory.NewTemplateTail(text, "" /*rawText*/, flags)
1101011005
case KindIdentifier:
1101111006
return file.tokenFactory.NewIdentifier(text)
1101211007
case KindPrivateIdentifier:

pkg/checker/checker.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9638,6 +9638,17 @@ func (c *Checker) getArgumentArityError(node *ast.Node, signatures []*Signature,
96389638
}
96399639
return diagnostic
96409640
default:
9641+
// Guard against out-of-bounds access when maxCount >= len(args).
9642+
// This can happen when we reach this fallback error path but the argument
9643+
// count actually matches the parameter count (e.g., due to trailing commas
9644+
// causing signature resolution to fail for other reasons).
9645+
if maxCount >= len(args) {
9646+
diagnostic := NewDiagnosticForNode(errorNode, message, parameterRange, len(args))
9647+
if headMessage != nil {
9648+
diagnostic = ast.NewDiagnosticChain(diagnostic, headMessage)
9649+
}
9650+
return diagnostic
9651+
}
96419652
sourceFile := ast.GetSourceFileOfNode(node)
96429653
pos := scanner.SkipTrivia(sourceFile.Text(), args[maxCount].Pos())
96439654
end := args[len(args)-1].End()
@@ -17352,7 +17363,7 @@ func (c *Checker) getSyntheticElementAccess(node *ast.Node) *ast.Node {
1735217363
parentAccess := c.getParentElementAccess(node)
1735317364
if parentAccess != nil && getFlowNodeOfNode(parentAccess) != nil {
1735417365
if propName, ok := c.getDestructuringPropertyName(node); ok {
17355-
literal := c.factory.NewStringLiteral(propName)
17366+
literal := c.factory.NewStringLiteral(propName, ast.TokenFlagsNone)
1735617367
literal.Loc = node.Loc
1735717368
lhsExpr := parentAccess
1735817369
if !ast.IsLeftHandSideExpression(parentAccess) {

pkg/checker/emitresolver.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -972,18 +972,18 @@ func (r *EmitResolver) CreateLiteralConstValue(emitContext *printer.EmitContext,
972972
}
973973
switch value := t.AsLiteralType().value.(type) {
974974
case string:
975-
return emitContext.Factory.NewStringLiteral(value)
975+
return emitContext.Factory.NewStringLiteral(value, ast.TokenFlagsNone)
976976
case jsnum.Number:
977977
if value.Abs() != value {
978978
// negative
979979
return emitContext.Factory.NewPrefixUnaryExpression(
980980
ast.KindMinusToken,
981-
emitContext.Factory.NewNumericLiteral(value.String()[1:]),
981+
emitContext.Factory.NewNumericLiteral(value.String()[1:], ast.TokenFlagsNone),
982982
)
983983
}
984-
return emitContext.Factory.NewNumericLiteral(value.String())
984+
return emitContext.Factory.NewNumericLiteral(value.String(), ast.TokenFlagsNone)
985985
case jsnum.PseudoBigInt:
986-
return emitContext.Factory.NewBigIntLiteral(pseudoBigIntToString(value) + "n")
986+
return emitContext.Factory.NewBigIntLiteral(pseudoBigIntToString(value)+"n", ast.TokenFlagsNone)
987987
case bool:
988988
kind := ast.KindFalseKeyword
989989
if value {

pkg/checker/nodebuilderimpl.go

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -757,11 +757,11 @@ func (b *NodeBuilderImpl) createExpressionFromSymbolChain(chain []*ast.Symbol, i
757757

758758
var expression *ast.Expression
759759
if startsWithSingleOrDoubleQuote(symbolName) && symbol.Flags&ast.SymbolFlagsEnumMember == 0 {
760-
expression = b.newStringLiteral(stringutil.UnquoteString(symbolName))
760+
expression = b.newStringLiteralEx(stringutil.UnquoteString(symbolName), symbolName[0] == '\'')
761761
} else if jsnum.FromString(symbolName).String() == symbolName {
762762
// TODO: the follwing in strada would assert if the number is negative, but no such assertion exists here
763763
// Moreover, what's even guaranteeing the name *isn't* -1 here anyway? Needs double-checking.
764-
expression = b.f.NewNumericLiteral(symbolName)
764+
expression = b.f.NewNumericLiteral(symbolName, ast.TokenFlagsNone)
765765
}
766766
if expression == nil {
767767
expression = b.f.NewIdentifier(symbolName)
@@ -2088,12 +2088,9 @@ func (b *NodeBuilderImpl) createPropertyNameNodeForIdentifierOrLiteral(name stri
20882088
return b.f.NewIdentifier(name)
20892089
}
20902090
if !stringNamed && !isMethodNamedNew && isNumericLiteralName(name) && jsnum.FromString(name) >= 0 {
2091-
return b.f.NewNumericLiteral(name)
2092-
}
2093-
result := b.f.NewStringLiteral(name)
2094-
if singleQuote {
2095-
result.AsStringLiteral().TokenFlags |= ast.TokenFlagsSingleQuote
2091+
return b.f.NewNumericLiteral(name, ast.TokenFlagsNone)
20962092
}
2093+
result := b.f.NewStringLiteral(name, core.IfElse(singleQuote, ast.TokenFlagsSingleQuote, ast.TokenFlagsNone))
20972094
return result
20982095
}
20992096

@@ -2157,14 +2154,11 @@ func (b *NodeBuilderImpl) getPropertyNameNodeForSymbolFromNameType(symbol *ast.S
21572154
name = nameType.AsLiteralType().value.(string)
21582155
}
21592156
if !scanner.IsIdentifierText(name, core.LanguageVariantStandard) && (stringNamed || !isNumericLiteralName(name)) {
2160-
node := b.f.NewStringLiteral(name)
2161-
if singleQuote {
2162-
node.AsStringLiteral().TokenFlags |= ast.TokenFlagsSingleQuote
2163-
}
2157+
node := b.f.NewStringLiteral(name, core.IfElse(singleQuote, ast.TokenFlagsSingleQuote, ast.TokenFlagsNone))
21642158
return node
21652159
}
21662160
if isNumericLiteralName(name) && name[0] == '-' {
2167-
return b.f.NewComputedPropertyName(b.f.NewPrefixUnaryExpression(ast.KindMinusToken, b.f.NewNumericLiteral(name[1:])))
2161+
return b.f.NewComputedPropertyName(b.f.NewPrefixUnaryExpression(ast.KindMinusToken, b.f.NewNumericLiteral(name[1:], ast.TokenFlagsNone)))
21682162
}
21692163
return b.createPropertyNameNodeForIdentifierOrLiteral(name, singleQuote, stringNamed, isMethod)
21702164
}
@@ -2896,14 +2890,14 @@ func (b *NodeBuilderImpl) typeToTypeNode(t *Type) *ast.TypeNode {
28962890
value := t.AsLiteralType().value.(jsnum.Number)
28972891
b.ctx.approximateLength += len(value.String())
28982892
if value < 0 {
2899-
return b.f.NewLiteralTypeNode(b.f.NewPrefixUnaryExpression(ast.KindMinusToken, b.f.NewNumericLiteral(value.String()[1:])))
2893+
return b.f.NewLiteralTypeNode(b.f.NewPrefixUnaryExpression(ast.KindMinusToken, b.f.NewNumericLiteral(value.String()[1:], ast.TokenFlagsNone)))
29002894
} else {
2901-
return b.f.NewLiteralTypeNode(b.f.NewNumericLiteral(value.String()))
2895+
return b.f.NewLiteralTypeNode(b.f.NewNumericLiteral(value.String(), ast.TokenFlagsNone))
29022896
}
29032897
}
29042898
if t.flags&TypeFlagsBigIntLiteral != 0 {
29052899
b.ctx.approximateLength += len(pseudoBigIntToString(getBigIntLiteralValue(t))) + 1
2906-
return b.f.NewLiteralTypeNode(b.f.NewBigIntLiteral(pseudoBigIntToString(getBigIntLiteralValue(t)) + "n"))
2900+
return b.f.NewLiteralTypeNode(b.f.NewBigIntLiteral(pseudoBigIntToString(getBigIntLiteralValue(t))+"n", ast.TokenFlagsNone))
29072901
}
29082902
if t.flags&TypeFlagsBooleanLiteral != 0 {
29092903
if t.AsLiteralType().value.(bool) {
@@ -3102,10 +3096,15 @@ func (b *NodeBuilderImpl) typeToTypeNode(t *Type) *ast.TypeNode {
31023096
}
31033097

31043098
func (b *NodeBuilderImpl) newStringLiteral(text string) *ast.Node {
3105-
node := b.f.NewStringLiteral(text)
3106-
if b.ctx.flags&nodebuilder.FlagsUseSingleQuotesForStringLiteralType != 0 {
3107-
node.AsStringLiteral().TokenFlags |= ast.TokenFlagsSingleQuote
3099+
return b.newStringLiteralEx(text, false /*isSingleQuote*/)
3100+
}
3101+
3102+
func (b *NodeBuilderImpl) newStringLiteralEx(text string, isSingleQuote bool) *ast.Node {
3103+
flags := ast.TokenFlagsNone
3104+
if isSingleQuote || b.ctx.flags&nodebuilder.FlagsUseSingleQuotesForStringLiteralType != 0 {
3105+
flags |= ast.TokenFlagsSingleQuote
31083106
}
3107+
node := b.f.NewStringLiteral(text, flags)
31093108
return node
31103109
}
31113110

pkg/compiler/fileloader.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(t *parseTask) {
477477
func (p *fileLoader) createSyntheticImport(text string, file *ast.SourceFile) *ast.Node {
478478
p.factoryMu.Lock()
479479
defer p.factoryMu.Unlock()
480-
externalHelpersModuleReference := p.factory.NewStringLiteral(text)
480+
externalHelpersModuleReference := p.factory.NewStringLiteral(text, ast.TokenFlagsNone)
481481
importDecl := p.factory.NewImportDeclaration(nil, nil, externalHelpersModuleReference, nil)
482482
// !!! addInternalEmitFlags(importDecl, InternalEmitFlags.NeverApplyImportHelper);
483483
externalHelpersModuleReference.Parent = importDecl

0 commit comments

Comments
 (0)