From 72b7aaac0e76bb0e76ba196b67b10650633d2d74 Mon Sep 17 00:00:00 2001 From: Gabriela Araujo Britto Date: Thu, 11 Dec 2025 00:46:43 +0000 Subject: [PATCH 1/5] add token flags to token creation functions --- internal/ast/ast.go | 57 +++++++++---------- internal/checker/checker.go | 2 +- internal/checker/emitresolver.go | 8 +-- internal/checker/nodebuilderimpl.go | 35 ++++++------ internal/compiler/fileloader.go | 2 +- internal/ls/autoimportfixes.go | 8 +-- internal/ls/autoimports.go | 8 ++- internal/ls/codeactions_importfixes.go | 2 +- internal/parser/parser.go | 21 +++---- internal/printer/factory.go | 14 ++--- internal/printer/printer_test.go | 4 +- .../transformers/declarations/transform.go | 6 +- .../estransforms/namedevaluation.go | 18 +++--- .../estransforms/objectrestspread.go | 2 +- internal/transformers/inliners/constenum.go | 12 ++-- internal/transformers/jsxtransforms/jsx.go | 30 ++++++---- .../moduletransforms/commonjsmodule.go | 2 +- .../transformers/moduletransforms/esmodule.go | 2 +- .../moduletransforms/externalmoduleinfo.go | 4 +- .../moduletransforms/utilities.go | 4 +- .../tstransforms/runtimesyntax.go | 6 +- .../transformers/tstransforms/utilities.go | 4 +- 22 files changed, 126 insertions(+), 125 deletions(-) diff --git a/internal/ast/ast.go b/internal/ast/ast.go index ec9ae5cce2..388404b3de 100644 --- a/internal/ast/ast.go +++ b/internal/ast/ast.go @@ -6141,15 +6141,16 @@ type StringLiteral struct { LiteralLikeBase } -func (f *NodeFactory) NewStringLiteral(text string) *Node { +func (f *NodeFactory) NewStringLiteral(text string, flags TokenFlags) *Node { data := f.stringLiteralPool.New() data.Text = text + data.TokenFlags = flags & TokenFlagsStringLiteralFlags f.textCount++ return f.newNode(KindStringLiteral, data) } func (node *StringLiteral) Clone(f NodeFactoryCoercible) *Node { - return cloneNode(f.AsNodeFactory().NewStringLiteral(node.Text), node.AsNode(), f.AsNodeFactory().hooks) + return cloneNode(f.AsNodeFactory().NewStringLiteral(node.Text, node.TokenFlags), node.AsNode(), f.AsNodeFactory().hooks) } func IsStringLiteral(node *Node) bool { @@ -6163,15 +6164,16 @@ type NumericLiteral struct { LiteralLikeBase } -func (f *NodeFactory) NewNumericLiteral(text string) *Node { +func (f *NodeFactory) NewNumericLiteral(text string, flags TokenFlags) *Node { data := f.numericLiteralPool.New() data.Text = text + data.TokenFlags = flags & TokenFlagsNumericLiteralFlags f.textCount++ return f.newNode(KindNumericLiteral, data) } func (node *NumericLiteral) Clone(f NodeFactoryCoercible) *Node { - return cloneNode(f.AsNodeFactory().NewNumericLiteral(node.Text), node.AsNode(), f.AsNodeFactory().hooks) + return cloneNode(f.AsNodeFactory().NewNumericLiteral(node.Text, node.TokenFlags), node.AsNode(), f.AsNodeFactory().hooks) } func IsNumericLiteral(node *Node) bool { @@ -6185,15 +6187,16 @@ type BigIntLiteral struct { LiteralLikeBase } -func (f *NodeFactory) NewBigIntLiteral(text string) *Node { +func (f *NodeFactory) NewBigIntLiteral(text string, flags TokenFlags) *Node { data := &BigIntLiteral{} data.Text = text + data.TokenFlags = flags & TokenFlagsNumericLiteralFlags f.textCount++ return f.newNode(KindBigIntLiteral, data) } func (node *BigIntLiteral) Clone(f NodeFactoryCoercible) *Node { - return cloneNode(f.AsNodeFactory().NewBigIntLiteral(node.Text), node.AsNode(), f.AsNodeFactory().hooks) + return cloneNode(f.AsNodeFactory().NewBigIntLiteral(node.Text, node.TokenFlags), node.AsNode(), f.AsNodeFactory().hooks) } func (node *BigIntLiteral) computeSubtreeFacts() SubtreeFacts { @@ -6211,15 +6214,16 @@ type RegularExpressionLiteral struct { LiteralLikeBase } -func (f *NodeFactory) NewRegularExpressionLiteral(text string) *Node { +func (f *NodeFactory) NewRegularExpressionLiteral(text string, flags TokenFlags) *Node { data := &RegularExpressionLiteral{} data.Text = text + data.TokenFlags = flags & TokenFlagsRegularExpressionLiteralFlags f.textCount++ return f.newNode(KindRegularExpressionLiteral, data) } func (node *RegularExpressionLiteral) Clone(f NodeFactoryCoercible) *Node { - return cloneNode(f.AsNodeFactory().NewRegularExpressionLiteral(node.Text), node.AsNode(), f.AsNodeFactory().hooks) + return cloneNode(f.AsNodeFactory().NewRegularExpressionLiteral(node.Text, node.TokenFlags), node.AsNode(), f.AsNodeFactory().hooks) } func IsRegularExpressionLiteral(node *Node) bool { @@ -6233,15 +6237,16 @@ type NoSubstitutionTemplateLiteral struct { TemplateLiteralLikeBase } -func (f *NodeFactory) NewNoSubstitutionTemplateLiteral(text string) *Node { +func (f *NodeFactory) NewNoSubstitutionTemplateLiteral(text string, templateFlags TokenFlags) *Node { data := &NoSubstitutionTemplateLiteral{} data.Text = text + data.TemplateFlags = templateFlags & TokenFlagsTemplateLiteralLikeFlags f.textCount++ return f.newNode(KindNoSubstitutionTemplateLiteral, data) } func (node *NoSubstitutionTemplateLiteral) Clone(f NodeFactoryCoercible) *Node { - return cloneNode(f.AsNodeFactory().NewNoSubstitutionTemplateLiteral(node.Text), node.AsNode(), f.AsNodeFactory().hooks) + return cloneNode(f.AsNodeFactory().NewNoSubstitutionTemplateLiteral(node.Text, node.TemplateFlags), node.AsNode(), f.AsNodeFactory().hooks) } // BinaryExpression @@ -8722,7 +8727,7 @@ func (f *NodeFactory) NewTemplateHead(text string, rawText string, templateFlags data := &TemplateHead{} data.Text = text data.RawText = rawText - data.TemplateFlags = templateFlags + data.TemplateFlags = templateFlags & TokenFlagsTemplateLiteralLikeFlags f.textCount++ return f.newNode(KindTemplateHead, data) } @@ -8746,7 +8751,7 @@ func (f *NodeFactory) NewTemplateMiddle(text string, rawText string, templateFla data := &TemplateMiddle{} data.Text = text data.RawText = rawText - data.TemplateFlags = templateFlags + data.TemplateFlags = templateFlags & TokenFlagsTemplateLiteralLikeFlags f.textCount++ return f.newNode(KindTemplateMiddle, data) } @@ -8770,7 +8775,7 @@ func (f *NodeFactory) NewTemplateTail(text string, rawText string, templateFlags data := &TemplateTail{} data.Text = text data.RawText = rawText - data.TemplateFlags = templateFlags + data.TemplateFlags = templateFlags & TokenFlagsTemplateLiteralLikeFlags f.textCount++ return f.newNode(KindTemplateTail, data) } @@ -10980,33 +10985,23 @@ func createToken(kind Kind, file *SourceFile, pos, end int, flags TokenFlags) *N text := file.text[pos:end] switch kind { case KindNumericLiteral: - literal := file.tokenFactory.NewNumericLiteral(text) - literal.AsNumericLiteral().TokenFlags = flags & TokenFlagsNumericLiteralFlags - return literal + return file.tokenFactory.NewNumericLiteral(text, flags) case KindBigIntLiteral: - literal := file.tokenFactory.NewBigIntLiteral(text) - literal.AsBigIntLiteral().TokenFlags = flags & TokenFlagsNumericLiteralFlags - return literal + return file.tokenFactory.NewBigIntLiteral(text, flags) case KindStringLiteral: - literal := file.tokenFactory.NewStringLiteral(text) - literal.AsStringLiteral().TokenFlags = flags & TokenFlagsStringLiteralFlags - return literal + return file.tokenFactory.NewStringLiteral(text, flags) case KindJsxText, KindJsxTextAllWhiteSpaces: return file.tokenFactory.NewJsxText(text, kind == KindJsxTextAllWhiteSpaces) case KindRegularExpressionLiteral: - literal := file.tokenFactory.NewRegularExpressionLiteral(text) - literal.AsRegularExpressionLiteral().TokenFlags = flags & TokenFlagsRegularExpressionLiteralFlags - return literal + return file.tokenFactory.NewRegularExpressionLiteral(text, flags) case KindNoSubstitutionTemplateLiteral: - literal := file.tokenFactory.NewNoSubstitutionTemplateLiteral(text) - literal.AsNoSubstitutionTemplateLiteral().TokenFlags = flags & TokenFlagsTemplateLiteralLikeFlags - return literal + return file.tokenFactory.NewNoSubstitutionTemplateLiteral(text, flags) case KindTemplateHead: - return file.tokenFactory.NewTemplateHead(text, "" /*rawText*/, flags&TokenFlagsTemplateLiteralLikeFlags) + return file.tokenFactory.NewTemplateHead(text, "" /*rawText*/, flags) case KindTemplateMiddle: - return file.tokenFactory.NewTemplateMiddle(text, "" /*rawText*/, flags&TokenFlagsTemplateLiteralLikeFlags) + return file.tokenFactory.NewTemplateMiddle(text, "" /*rawText*/, flags) case KindTemplateTail: - return file.tokenFactory.NewTemplateTail(text, "" /*rawText*/, flags&TokenFlagsTemplateLiteralLikeFlags) + return file.tokenFactory.NewTemplateTail(text, "" /*rawText*/, flags) case KindIdentifier: return file.tokenFactory.NewIdentifier(text) case KindPrivateIdentifier: diff --git a/internal/checker/checker.go b/internal/checker/checker.go index 14330cfb23..4c846903b9 100644 --- a/internal/checker/checker.go +++ b/internal/checker/checker.go @@ -17352,7 +17352,7 @@ func (c *Checker) getSyntheticElementAccess(node *ast.Node) *ast.Node { parentAccess := c.getParentElementAccess(node) if parentAccess != nil && getFlowNodeOfNode(parentAccess) != nil { if propName, ok := c.getDestructuringPropertyName(node); ok { - literal := c.factory.NewStringLiteral(propName) + literal := c.factory.NewStringLiteral(propName, ast.TokenFlagsNone) literal.Loc = node.Loc lhsExpr := parentAccess if !ast.IsLeftHandSideExpression(parentAccess) { diff --git a/internal/checker/emitresolver.go b/internal/checker/emitresolver.go index 877f2d1831..6b9f695ea7 100644 --- a/internal/checker/emitresolver.go +++ b/internal/checker/emitresolver.go @@ -972,18 +972,18 @@ func (r *EmitResolver) CreateLiteralConstValue(emitContext *printer.EmitContext, } switch value := t.AsLiteralType().value.(type) { case string: - return emitContext.Factory.NewStringLiteral(value) + return emitContext.Factory.NewStringLiteral(value, ast.TokenFlagsNone) case jsnum.Number: if value.Abs() != value { // negative return emitContext.Factory.NewPrefixUnaryExpression( ast.KindMinusToken, - emitContext.Factory.NewNumericLiteral(value.String()[1:]), + emitContext.Factory.NewNumericLiteral(value.String()[1:], ast.TokenFlagsNone), ) } - return emitContext.Factory.NewNumericLiteral(value.String()) + return emitContext.Factory.NewNumericLiteral(value.String(), ast.TokenFlagsNone) case jsnum.PseudoBigInt: - return emitContext.Factory.NewBigIntLiteral(pseudoBigIntToString(value) + "n") + return emitContext.Factory.NewBigIntLiteral(pseudoBigIntToString(value)+"n", ast.TokenFlagsNone) case bool: kind := ast.KindFalseKeyword if value { diff --git a/internal/checker/nodebuilderimpl.go b/internal/checker/nodebuilderimpl.go index 9ba20b3221..1fb4c35794 100644 --- a/internal/checker/nodebuilderimpl.go +++ b/internal/checker/nodebuilderimpl.go @@ -757,11 +757,11 @@ func (b *NodeBuilderImpl) createExpressionFromSymbolChain(chain []*ast.Symbol, i var expression *ast.Expression if startsWithSingleOrDoubleQuote(symbolName) && symbol.Flags&ast.SymbolFlagsEnumMember == 0 { - expression = b.newStringLiteral(stringutil.UnquoteString(symbolName)) + expression = b.newStringLiteralEx(stringutil.UnquoteString(symbolName), symbolName[0] == '\'') } else if jsnum.FromString(symbolName).String() == symbolName { // TODO: the follwing in strada would assert if the number is negative, but no such assertion exists here // Moreover, what's even guaranteeing the name *isn't* -1 here anyway? Needs double-checking. - expression = b.f.NewNumericLiteral(symbolName) + expression = b.f.NewNumericLiteral(symbolName, ast.TokenFlagsNone) } if expression == nil { expression = b.f.NewIdentifier(symbolName) @@ -2088,12 +2088,9 @@ func (b *NodeBuilderImpl) createPropertyNameNodeForIdentifierOrLiteral(name stri return b.f.NewIdentifier(name) } if !stringNamed && !isMethodNamedNew && isNumericLiteralName(name) && jsnum.FromString(name) >= 0 { - return b.f.NewNumericLiteral(name) - } - result := b.f.NewStringLiteral(name) - if singleQuote { - result.AsStringLiteral().TokenFlags |= ast.TokenFlagsSingleQuote + return b.f.NewNumericLiteral(name, ast.TokenFlagsNone) } + result := b.f.NewStringLiteral(name, core.IfElse(singleQuote, ast.TokenFlagsSingleQuote, ast.TokenFlagsNone)) return result } @@ -2157,14 +2154,11 @@ func (b *NodeBuilderImpl) getPropertyNameNodeForSymbolFromNameType(symbol *ast.S name = nameType.AsLiteralType().value.(string) } if !scanner.IsIdentifierText(name, core.LanguageVariantStandard) && (stringNamed || !isNumericLiteralName(name)) { - node := b.f.NewStringLiteral(name) - if singleQuote { - node.AsStringLiteral().TokenFlags |= ast.TokenFlagsSingleQuote - } + node := b.f.NewStringLiteral(name, core.IfElse(singleQuote, ast.TokenFlagsSingleQuote, ast.TokenFlagsNone)) return node } if isNumericLiteralName(name) && name[0] == '-' { - return b.f.NewComputedPropertyName(b.f.NewPrefixUnaryExpression(ast.KindMinusToken, b.f.NewNumericLiteral(name[1:]))) + return b.f.NewComputedPropertyName(b.f.NewPrefixUnaryExpression(ast.KindMinusToken, b.f.NewNumericLiteral(name[1:], ast.TokenFlagsNone))) } return b.createPropertyNameNodeForIdentifierOrLiteral(name, singleQuote, stringNamed, isMethod) } @@ -2896,14 +2890,14 @@ func (b *NodeBuilderImpl) typeToTypeNode(t *Type) *ast.TypeNode { value := t.AsLiteralType().value.(jsnum.Number) b.ctx.approximateLength += len(value.String()) if value < 0 { - return b.f.NewLiteralTypeNode(b.f.NewPrefixUnaryExpression(ast.KindMinusToken, b.f.NewNumericLiteral(value.String()[1:]))) + return b.f.NewLiteralTypeNode(b.f.NewPrefixUnaryExpression(ast.KindMinusToken, b.f.NewNumericLiteral(value.String()[1:], ast.TokenFlagsNone))) } else { - return b.f.NewLiteralTypeNode(b.f.NewNumericLiteral(value.String())) + return b.f.NewLiteralTypeNode(b.f.NewNumericLiteral(value.String(), ast.TokenFlagsNone)) } } if t.flags&TypeFlagsBigIntLiteral != 0 { b.ctx.approximateLength += len(pseudoBigIntToString(getBigIntLiteralValue(t))) + 1 - return b.f.NewLiteralTypeNode(b.f.NewBigIntLiteral(pseudoBigIntToString(getBigIntLiteralValue(t)) + "n")) + return b.f.NewLiteralTypeNode(b.f.NewBigIntLiteral(pseudoBigIntToString(getBigIntLiteralValue(t))+"n", ast.TokenFlagsNone)) } if t.flags&TypeFlagsBooleanLiteral != 0 { if t.AsLiteralType().value.(bool) { @@ -3102,10 +3096,15 @@ func (b *NodeBuilderImpl) typeToTypeNode(t *Type) *ast.TypeNode { } func (b *NodeBuilderImpl) newStringLiteral(text string) *ast.Node { - node := b.f.NewStringLiteral(text) - if b.ctx.flags&nodebuilder.FlagsUseSingleQuotesForStringLiteralType != 0 { - node.AsStringLiteral().TokenFlags |= ast.TokenFlagsSingleQuote + return b.newStringLiteralEx(text, false /*isSingleQuote*/) +} + +func (b *NodeBuilderImpl) newStringLiteralEx(text string, isSingleQuote bool) *ast.Node { + flags := ast.TokenFlagsNone + if isSingleQuote || b.ctx.flags&nodebuilder.FlagsUseSingleQuotesForStringLiteralType != 0 { + flags |= ast.TokenFlagsSingleQuote } + node := b.f.NewStringLiteral(text, flags) return node } diff --git a/internal/compiler/fileloader.go b/internal/compiler/fileloader.go index 2b8a7a0c34..6fdbf008ea 100644 --- a/internal/compiler/fileloader.go +++ b/internal/compiler/fileloader.go @@ -477,7 +477,7 @@ func (p *fileLoader) resolveImportsAndModuleAugmentations(t *parseTask) { func (p *fileLoader) createSyntheticImport(text string, file *ast.SourceFile) *ast.Node { p.factoryMu.Lock() defer p.factoryMu.Unlock() - externalHelpersModuleReference := p.factory.NewStringLiteral(text) + externalHelpersModuleReference := p.factory.NewStringLiteral(text, ast.TokenFlagsNone) importDecl := p.factory.NewImportDeclaration(nil, nil, externalHelpersModuleReference, nil) // !!! addInternalEmitFlags(importDecl, InternalEmitFlags.NeverApplyImportHelper); externalHelpersModuleReference.Parent = importDecl diff --git a/internal/ls/autoimportfixes.go b/internal/ls/autoimportfixes.go index 5e92f1f27a..7383474f07 100644 --- a/internal/ls/autoimportfixes.go +++ b/internal/ls/autoimportfixes.go @@ -298,10 +298,10 @@ func (ls *LanguageService) getNewImports( namespaceLikeImport *Import, // { importKind: ImportKind.CommonJS | ImportKind.Namespace; } compilerOptions *core.CompilerOptions, ) []*ast.Statement { - moduleSpecifierStringLiteral := ct.NodeFactory.NewStringLiteral(moduleSpecifier) - if quotePreference == quotePreferenceSingle { - moduleSpecifierStringLiteral.AsStringLiteral().TokenFlags |= ast.TokenFlagsSingleQuote - } + moduleSpecifierStringLiteral := ct.NodeFactory.NewStringLiteral( + moduleSpecifier, + core.IfElse(quotePreference == quotePreferenceSingle, ast.TokenFlagsSingleQuote, ast.TokenFlagsNone), + ) var statements []*ast.Statement // []AnyImportSyntax if defaultImport != nil || len(namedImports) > 0 { // `verbatimModuleSyntax` should prefer top-level `import type` - diff --git a/internal/ls/autoimports.go b/internal/ls/autoimports.go index 2e468c10b4..c88f426880 100644 --- a/internal/ls/autoimports.go +++ b/internal/ls/autoimports.go @@ -1564,7 +1564,7 @@ func (l *LanguageService) codeActionForFixWorker( } if fix.useRequire { - declarations = getNewRequires(changeTracker, fix.moduleSpecifier, defaultImport, namedImports, namespaceLikeImport, l.GetProgram().Options()) + declarations = getNewRequires(changeTracker, fix.moduleSpecifier, getQuotePreference(sourceFile, l.UserPreferences()), defaultImport, namedImports, namespaceLikeImport, l.GetProgram().Options()) } else { declarations = l.getNewImports(changeTracker, fix.moduleSpecifier, getQuotePreference(sourceFile, l.UserPreferences()), defaultImport, namedImports, namespaceLikeImport, l.GetProgram().Options()) } @@ -1598,12 +1598,16 @@ func (l *LanguageService) codeActionForFixWorker( func getNewRequires( changeTracker *change.Tracker, moduleSpecifier string, + quotePreference quotePreference, defaultImport *Import, namedImports []*Import, namespaceLikeImport *Import, compilerOptions *core.CompilerOptions, ) []*ast.Statement { - quotedModuleSpecifier := changeTracker.NodeFactory.NewStringLiteral(moduleSpecifier) + quotedModuleSpecifier := changeTracker.NodeFactory.NewStringLiteral( + moduleSpecifier, + core.IfElse(quotePreference == quotePreferenceSingle, ast.TokenFlagsSingleQuote, ast.TokenFlagsNone), + ) var statements []*ast.Statement // const { default: foo, bar, etc } = require('./mod'); diff --git a/internal/ls/codeactions_importfixes.go b/internal/ls/codeactions_importfixes.go index 0679b5ade8..49939e7cc6 100644 --- a/internal/ls/codeactions_importfixes.go +++ b/internal/ls/codeactions_importfixes.go @@ -562,7 +562,7 @@ func promoteImportClause( outputpaths.GetOutputExtension(moduleText, compilerOptions.Jsx), ) // Replace the module specifier with the new extension - newStringLiteral := changes.NewStringLiteral(changedExtension) + newStringLiteral := changes.NewStringLiteral(changedExtension, moduleSpecifier.AsStringLiteral().TokenFlags) changes.ReplaceNode(sourceFile, moduleSpecifier, newStringLiteral, nil) } } diff --git a/internal/parser/parser.go b/internal/parser/parser.go index fdb9fafe56..131aca5007 100644 --- a/internal/parser/parser.go +++ b/internal/parser/parser.go @@ -3562,7 +3562,7 @@ func (p *Parser) parseTemplateHead(isTaggedTemplate bool) *ast.Node { p.reScanTemplateToken(false /*isTaggedTemplate*/) } pos := p.nodePos() - result := p.factory.NewTemplateHead(p.scanner.TokenValue(), p.getTemplateLiteralRawText(2 /*endLength*/), p.scanner.TokenFlags()&ast.TokenFlagsTemplateLiteralLikeFlags) + result := p.factory.NewTemplateHead(p.scanner.TokenValue(), p.getTemplateLiteralRawText(2 /*endLength*/), p.scanner.TokenFlags()) p.nextToken() return p.finishNode(result, pos) } @@ -3606,9 +3606,9 @@ func (p *Parser) parseTemplateMiddleOrTail() *ast.Node { pos := p.nodePos() var result *ast.Node if p.token == ast.KindTemplateMiddle { - result = p.factory.NewTemplateMiddle(p.scanner.TokenValue(), p.getTemplateLiteralRawText(2 /*endLength*/), p.scanner.TokenFlags()&ast.TokenFlagsTemplateLiteralLikeFlags) + result = p.factory.NewTemplateMiddle(p.scanner.TokenValue(), p.getTemplateLiteralRawText(2 /*endLength*/), p.scanner.TokenFlags()) } else { - result = p.factory.NewTemplateTail(p.scanner.TokenValue(), p.getTemplateLiteralRawText(1 /*endLength*/), p.scanner.TokenFlags()&ast.TokenFlagsTemplateLiteralLikeFlags) + result = p.factory.NewTemplateTail(p.scanner.TokenValue(), p.getTemplateLiteralRawText(1 /*endLength*/), p.scanner.TokenFlags()) } p.nextToken() return p.finishNode(result, pos) @@ -5646,20 +5646,15 @@ func (p *Parser) parseLiteralExpression(intern bool) *ast.Node { var result *ast.Node switch p.token { case ast.KindStringLiteral: - result = p.factory.NewStringLiteral(text) - result.AsStringLiteral().TokenFlags |= tokenFlags & ast.TokenFlagsStringLiteralFlags + result = p.factory.NewStringLiteral(text, tokenFlags) case ast.KindNumericLiteral: - result = p.factory.NewNumericLiteral(text) - result.AsNumericLiteral().TokenFlags |= tokenFlags & ast.TokenFlagsNumericLiteralFlags + result = p.factory.NewNumericLiteral(text, tokenFlags) case ast.KindBigIntLiteral: - result = p.factory.NewBigIntLiteral(text) - result.AsBigIntLiteral().TokenFlags |= tokenFlags & ast.TokenFlagsNumericLiteralFlags + result = p.factory.NewBigIntLiteral(text, tokenFlags) case ast.KindRegularExpressionLiteral: - result = p.factory.NewRegularExpressionLiteral(text) - result.AsRegularExpressionLiteral().TokenFlags |= tokenFlags & ast.TokenFlagsRegularExpressionLiteralFlags + result = p.factory.NewRegularExpressionLiteral(text, tokenFlags) case ast.KindNoSubstitutionTemplateLiteral: - result = p.factory.NewNoSubstitutionTemplateLiteral(text) - result.AsNoSubstitutionTemplateLiteral().TokenFlags |= tokenFlags & ast.TokenFlagsTemplateLiteralLikeFlags + result = p.factory.NewNoSubstitutionTemplateLiteral(text, tokenFlags) default: panic("Unhandled case in parseLiteralExpression") } diff --git a/internal/printer/factory.go b/internal/printer/factory.go index 714ac3d4b0..bffd989665 100644 --- a/internal/printer/factory.go +++ b/internal/printer/factory.go @@ -177,7 +177,7 @@ func (f *NodeFactory) NewStringLiteralFromNode(textSourceNode *ast.Node) *ast.No ast.KindRegularExpressionLiteral: text = textSourceNode.Text() } - node := f.NewStringLiteral(text) + node := f.NewStringLiteral(text, ast.TokenFlagsNone) if f.emitContext.textSource == nil { f.emitContext.textSource = make(map[*ast.StringLiteralNode]*ast.Node) } @@ -234,7 +234,7 @@ func (f *NodeFactory) NewStrictInequalityExpression(left *ast.Expression, right // func (f *NodeFactory) NewVoidZeroExpression() *ast.Expression { - return f.NewVoidExpression(f.NewNumericLiteral("0")) + return f.NewVoidExpression(f.NewNumericLiteral("0", ast.TokenFlagsNone)) } func flattenCommaElement(node *ast.Expression, expressions []*ast.Expression) []*ast.Expression { @@ -282,7 +282,7 @@ func (f *NodeFactory) NewTypeCheck(value *ast.Node, tag string) *ast.Node { } else if tag == "undefined" { return f.NewStrictEqualityExpression(value, f.NewVoidZeroExpression()) } else { - return f.NewStrictEqualityExpression(f.NewTypeOfExpression(value), f.NewStringLiteral(tag)) + return f.NewStrictEqualityExpression(f.NewTypeOfExpression(value), f.NewStringLiteral(tag, ast.TokenFlagsNone)) } } @@ -321,7 +321,7 @@ func (f *NodeFactory) NewFunctionCallCall(target *ast.Expression, thisArg *ast.E func (f *NodeFactory) NewArraySliceCall(array *ast.Expression, start int) *ast.Node { var args []*ast.Node if start != 0 { - args = append(args, f.NewNumericLiteral(strconv.Itoa(start))) + args = append(args, f.NewNumericLiteral(strconv.Itoa(start), ast.TokenFlagsNone)) } return f.NewMethodCall(array, f.NewIdentifier("slice"), args) } @@ -387,7 +387,7 @@ func (f *NodeFactory) EnsureUseStrict(statements []*ast.Statement) []*ast.Statem break } } - useStrictPrologue := f.NewExpressionStatement(f.NewStringLiteral("use strict")) + useStrictPrologue := f.NewExpressionStatement(f.NewStringLiteral("use strict", ast.TokenFlagsNone)) statements = append([]*ast.Statement{useStrictPrologue}, statements...) return statements } @@ -573,7 +573,7 @@ func (f *NodeFactory) NewRestHelper(value *ast.Expression, elements []*ast.Node, f.NewToken(ast.KindQuestionToken), temp, f.NewToken(ast.KindColonToken), - f.NewBinaryExpression(nil, temp, nil, f.NewToken(ast.KindPlusToken), f.NewStringLiteral("")), + f.NewBinaryExpression(nil, temp, nil, f.NewToken(ast.KindPlusToken), f.NewStringLiteral("", ast.TokenFlagsNone)), )) } else { propertyNames = append(propertyNames, f.NewStringLiteralFromNode(propertyName)) @@ -613,7 +613,7 @@ func (f *NodeFactory) NewSetFunctionNameHelper(fn *ast.Expression, name *ast.Exp f.emitContext.RequestEmitHelper(setFunctionNameHelper) var arguments []*ast.Expression if len(prefix) > 0 { - arguments = []*ast.Expression{fn, name, f.NewStringLiteral(prefix)} + arguments = []*ast.Expression{fn, name, f.NewStringLiteral(prefix, ast.TokenFlagsNone)} } else { arguments = []*ast.Expression{fn, name} } diff --git a/internal/printer/printer_test.go b/internal/printer/printer_test.go index ad37b673c1..f7e54bcded 100644 --- a/internal/printer/printer_test.go +++ b/internal/printer/printer_test.go @@ -1062,7 +1062,7 @@ func TestParenthesizeTaggedTemplate1(t *testing.T) { ), nil, /*questionDotToken*/ nil, /*typeArguments*/ - factory.NewNoSubstitutionTemplateLiteral(""), + factory.NewNoSubstitutionTemplateLiteral("", ast.TokenFlagsNone), ast.NodeFlagsNone, ), ), @@ -1090,7 +1090,7 @@ func TestParenthesizeTaggedTemplate2(t *testing.T) { ), nil, /*questionDotToken*/ nil, /*typeArguments*/ - factory.NewNoSubstitutionTemplateLiteral(""), + factory.NewNoSubstitutionTemplateLiteral("", ast.TokenFlagsNone), ast.NodeFlagsNone, ), ), diff --git a/internal/transformers/declarations/transform.go b/internal/transformers/declarations/transform.go index ba4a3194e0..124ca192e4 100644 --- a/internal/transformers/declarations/transform.go +++ b/internal/transformers/declarations/transform.go @@ -1597,15 +1597,15 @@ func (tx *DeclarationTransformer) transformEnumDeclaration(input *ast.EnumDeclar switch value := enumValue.Value.(type) { case jsnum.Number: if value >= 0 { - newInitializer = tx.Factory().NewNumericLiteral(value.String()) + newInitializer = tx.Factory().NewNumericLiteral(value.String(), ast.TokenFlagsNone) } else { newInitializer = tx.Factory().NewPrefixUnaryExpression( ast.KindMinusToken, - tx.Factory().NewNumericLiteral((-value).String()), + tx.Factory().NewNumericLiteral((-value).String(), ast.TokenFlagsNone), ) } case string: - newInitializer = tx.Factory().NewStringLiteral(value) + newInitializer = tx.Factory().NewStringLiteral(value, ast.TokenFlagsNone) default: // nil newInitializer = nil diff --git a/internal/transformers/estransforms/namedevaluation.go b/internal/transformers/estransforms/namedevaluation.go index 1aad19d04f..21e788b6bf 100644 --- a/internal/transformers/estransforms/namedevaluation.go +++ b/internal/transformers/estransforms/namedevaluation.go @@ -145,7 +145,7 @@ func getAssignedNameOfIdentifier(emitContext *printer.EmitContext, name *ast.Ide original := emitContext.MostOriginal(ast.SkipOuterExpressions(expression, ast.OEKAll)) if (ast.IsClassDeclaration(original) || ast.IsFunctionDeclaration(original)) && original.Name() == nil && ast.HasSyntacticModifier(original, ast.ModifierFlagsDefault) { - return emitContext.Factory.NewStringLiteral("default") + return emitContext.Factory.NewStringLiteral("default", ast.TokenFlagsNone) } return emitContext.Factory.NewStringLiteralFromNode(name) } @@ -153,7 +153,7 @@ func getAssignedNameOfIdentifier(emitContext *printer.EmitContext, name *ast.Ide func getAssignedNameOfPropertyName(emitContext *printer.EmitContext, name *ast.PropertyName, assignedNameText string) (assignedName *ast.Expression, updatedName *ast.PropertyName) { factory := emitContext.Factory if len(assignedNameText) > 0 { - assignedName := factory.NewStringLiteral(assignedNameText) + assignedName := factory.NewStringLiteral(assignedNameText, ast.TokenFlagsNone) return assignedName, name } @@ -325,7 +325,7 @@ func transformNamedEvaluationOfShorthandAssignmentProperty(emitContext *printer. factory := emitContext.Factory var assignedName *ast.Expression if len(assignedNameText) > 0 { - assignedName = factory.NewStringLiteral(assignedNameText) + assignedName = factory.NewStringLiteral(assignedNameText, ast.TokenFlagsNone) } else { assignedName = getAssignedNameOfIdentifier(emitContext, node.Name(), node.ObjectAssignmentInitializer) } @@ -359,7 +359,7 @@ func transformNamedEvaluationOfVariableDeclaration(emitContext *printer.EmitCont factory := emitContext.Factory var assignedName *ast.Expression if len(assignedNameText) > 0 { - assignedName = factory.NewStringLiteral(assignedNameText) + assignedName = factory.NewStringLiteral(assignedNameText, ast.TokenFlagsNone) } else { assignedName = getAssignedNameOfIdentifier(emitContext, node.Name(), node.Initializer) } @@ -393,7 +393,7 @@ func transformNamedEvaluationOfParameterDeclaration(emitContext *printer.EmitCon factory := emitContext.Factory var assignedName *ast.Expression if len(assignedNameText) > 0 { - assignedName = factory.NewStringLiteral(assignedNameText) + assignedName = factory.NewStringLiteral(assignedNameText, ast.TokenFlagsNone) } else { assignedName = getAssignedNameOfIdentifier(emitContext, node.Name(), node.Initializer) } @@ -429,7 +429,7 @@ func transformNamedEvaluationOfBindingElement(emitContext *printer.EmitContext, factory := emitContext.Factory var assignedName *ast.Expression if len(assignedNameText) > 0 { - assignedName = factory.NewStringLiteral(assignedNameText) + assignedName = factory.NewStringLiteral(assignedNameText, ast.TokenFlagsNone) } else { assignedName = getAssignedNameOfIdentifier(emitContext, node.Name(), node.Initializer) } @@ -494,7 +494,7 @@ func transformNamedEvaluationOfAssignmentExpression(emitContext *printer.EmitCon factory := emitContext.Factory var assignedName *ast.Expression if len(assignedNameText) > 0 { - assignedName = factory.NewStringLiteral(assignedNameText) + assignedName = factory.NewStringLiteral(assignedNameText, ast.TokenFlagsNone) } else { assignedName = getAssignedNameOfIdentifier(emitContext, node.Left, node.Right) } @@ -522,9 +522,9 @@ func transformNamedEvaluationOfExportAssignment(emitContext *printer.EmitContext factory := emitContext.Factory var assignedName *ast.Expression if len(assignedNameText) > 0 { - assignedName = factory.NewStringLiteral(assignedNameText) + assignedName = factory.NewStringLiteral(assignedNameText, ast.TokenFlagsNone) } else { - assignedName = factory.NewStringLiteral("") + assignedName = factory.NewStringLiteral("", ast.TokenFlagsNone) } expression := finishTransformNamedEvaluation(emitContext, node.Expression, assignedName, ignoreEmptyStringLiteral) return factory.UpdateExportAssignment( diff --git a/internal/transformers/estransforms/objectrestspread.go b/internal/transformers/estransforms/objectrestspread.go index b27ecb7b77..0253197357 100644 --- a/internal/transformers/estransforms/objectrestspread.go +++ b/internal/transformers/estransforms/objectrestspread.go @@ -778,7 +778,7 @@ func (ch *objectRestSpreadTransformer) flattenArrayBindingOrAssignmentPattern(pa } else if ast.IsOmittedExpression(element) { continue } else if ast.GetRestIndicatorOfBindingOrAssignmentElement(element) == nil { - rhsValue := ch.Factory().NewElementAccessExpression(value, nil, ch.Factory().NewNumericLiteral(strconv.Itoa(i)), ast.NodeFlagsNone) + rhsValue := ch.Factory().NewElementAccessExpression(value, nil, ch.Factory().NewNumericLiteral(strconv.Itoa(i), ast.TokenFlagsNone), ast.NodeFlagsNone) ch.flattenBindingOrAssignmentElement(element, rhsValue, element.Loc, false) } else if i == numElements-1 { rhsValue := ch.Factory().NewArraySliceCall(value, i) diff --git a/internal/transformers/inliners/constenum.go b/internal/transformers/inliners/constenum.go index 9a0a907013..ffbf0ed027 100644 --- a/internal/transformers/inliners/constenum.go +++ b/internal/transformers/inliners/constenum.go @@ -51,19 +51,19 @@ func (tx *ConstEnumInliningTransformer) visit(node *ast.Node) *ast.Node { } else if v.IsNaN() { replacement = tx.Factory().NewIdentifier("NaN") } else if v.Abs() == v { - replacement = tx.Factory().NewNumericLiteral(v.String()) + replacement = tx.Factory().NewNumericLiteral(v.String(), ast.TokenFlagsNone) } else { - replacement = tx.Factory().NewPrefixUnaryExpression(ast.KindMinusToken, tx.Factory().NewNumericLiteral(v.Abs().String())) + replacement = tx.Factory().NewPrefixUnaryExpression(ast.KindMinusToken, tx.Factory().NewNumericLiteral(v.Abs().String(), ast.TokenFlagsNone)) } case string: - replacement = tx.Factory().NewStringLiteral(v) + replacement = tx.Factory().NewStringLiteral(v, ast.TokenFlagsNone) case jsnum.PseudoBigInt: // technically not supported by strada, and issues a checker error, handled here for completeness if v == (jsnum.PseudoBigInt{}) { - replacement = tx.Factory().NewBigIntLiteral("0") + replacement = tx.Factory().NewBigIntLiteral("0", ast.TokenFlagsNone) } else if !v.Negative { - replacement = tx.Factory().NewBigIntLiteral(v.Base10Value) + replacement = tx.Factory().NewBigIntLiteral(v.Base10Value, ast.TokenFlagsNone) } else { - replacement = tx.Factory().NewPrefixUnaryExpression(ast.KindMinusToken, tx.Factory().NewBigIntLiteral(v.Base10Value)) + replacement = tx.Factory().NewPrefixUnaryExpression(ast.KindMinusToken, tx.Factory().NewBigIntLiteral(v.Base10Value, ast.TokenFlagsNone)) } } diff --git a/internal/transformers/jsxtransforms/jsx.go b/internal/transformers/jsxtransforms/jsx.go index 2654015d20..60f168da22 100644 --- a/internal/transformers/jsxtransforms/jsx.go +++ b/internal/transformers/jsxtransforms/jsx.go @@ -49,7 +49,7 @@ func (tx *JSXTransformer) getCurrentFileNameExpression() *ast.Node { }), nil, nil, - tx.Factory().NewStringLiteral(tx.currentSourceFile.FileName()), + tx.Factory().NewStringLiteral(tx.currentSourceFile.FileName(), ast.TokenFlagsNone), ) tx.filenameDeclaration = d return d.AsVariableDeclaration().Name() @@ -236,7 +236,7 @@ func (tx *JSXTransformer) visitSourceFile(file *ast.SourceFile) *ast.Node { s := tx.Factory().NewImportDeclaration( nil, tx.Factory().NewImportClause(ast.KindUnknown, nil, tx.Factory().NewNamedImports(tx.Factory().NewNodeList(getSortedSpecifiers(importSpecifiersMap)))), - tx.Factory().NewStringLiteral(importSource), + tx.Factory().NewStringLiteral(importSource, ast.TokenFlagsNone), nil, ) ast.SetParentInChildren(s) @@ -260,7 +260,11 @@ func (tx *JSXTransformer) visitSourceFile(file *ast.SourceFile) *ast.Node { tx.Factory().NewBindingPattern(ast.KindObjectBindingPattern, tx.Factory().NewNodeList(asBindingElems)), nil, nil, - tx.Factory().NewCallExpression(tx.Factory().NewIdentifier("require"), nil, nil, tx.Factory().NewNodeList([]*ast.Node{tx.Factory().NewStringLiteral(importSource)}), ast.NodeFlagsNone), + tx.Factory().NewCallExpression( + tx.Factory().NewIdentifier("require"), + nil, + nil, + tx.Factory().NewNodeList([]*ast.Node{tx.Factory().NewStringLiteral(importSource, ast.TokenFlagsNone)}), ast.NodeFlagsNone), )}))) ast.SetParentInChildren(s) newStatements = append(newStatements, s) @@ -354,9 +358,11 @@ func (tx *JSXTransformer) getTagName(node *ast.Node) *ast.Node { } else if ast.IsJsxOpeningLikeElement(node) { tagName := node.TagName() if ast.IsIdentifier(tagName) && scanner.IsIntrinsicJsxName(tagName.Text()) { - return tx.Factory().NewStringLiteral(tagName.Text()) + return tx.Factory().NewStringLiteral(tagName.Text(), ast.TokenFlagsNone) } else if ast.IsJsxNamespacedName(tagName) { - return tx.Factory().NewStringLiteral(tagName.AsJsxNamespacedName().Namespace.Text() + ":" + tagName.AsJsxNamespacedName().Name().Text()) + return tx.Factory().NewStringLiteral( + tagName.AsJsxNamespacedName().Namespace.Text()+":"+tagName.AsJsxNamespacedName().Name().Text(), ast.TokenFlagsNone, + ) } else { return createExpressionFromEntityName(tx.Factory(), tagName) } @@ -514,10 +520,12 @@ func (tx *JSXTransformer) getAttributeName(node *ast.JsxAttribute) *ast.Node { if scanner.IsIdentifierText(text, core.LanguageVariantStandard) { return name } - return tx.Factory().NewStringLiteral(text) + return tx.Factory().NewStringLiteral(text, ast.TokenFlagsNone) } // must be jsx namespace - return tx.Factory().NewStringLiteral(name.AsJsxNamespacedName().Namespace.Text() + ":" + name.AsJsxNamespacedName().Name().Text()) + return tx.Factory().NewStringLiteral( + name.AsJsxNamespacedName().Namespace.Text()+":"+name.AsJsxNamespacedName().Name().Text(), ast.TokenFlagsNone, + ) } func (tx *JSXTransformer) transformJsxAttributeInitializer(node *ast.Node) *ast.Node { @@ -527,7 +535,7 @@ func (tx *JSXTransformer) transformJsxAttributeInitializer(node *ast.Node) *ast. if node.Kind == ast.KindStringLiteral { // Always recreate the literal to escape any escape sequences or newlines which may be in the original jsx string and which // Need to be escaped to be handled correctly in a normal string - res := tx.Factory().NewStringLiteral(decodeEntities(node.Text())) + res := tx.Factory().NewStringLiteral(decodeEntities(node.Text()), ast.TokenFlagsNone) res.Loc = node.Loc return res } @@ -581,8 +589,8 @@ func (tx *JSXTransformer) visitJsxOpeningLikeElementOrFragmentJSX( line, col := scanner.GetECMALineAndCharacterOfPosition(originalFile.AsSourceFile(), location.Pos()) args = append(args, tx.Factory().NewObjectLiteralExpression(tx.Factory().NewNodeList([]*ast.Node{ tx.Factory().NewPropertyAssignment(nil, tx.Factory().NewIdentifier("fileName"), nil, nil, tx.getCurrentFileNameExpression()), - tx.Factory().NewPropertyAssignment(nil, tx.Factory().NewIdentifier("lineNumber"), nil, nil, tx.Factory().NewNumericLiteral(strconv.FormatInt(int64(line+1), 10))), - tx.Factory().NewPropertyAssignment(nil, tx.Factory().NewIdentifier("columnNumber"), nil, nil, tx.Factory().NewNumericLiteral(strconv.FormatInt(int64(col+1), 10))), + tx.Factory().NewPropertyAssignment(nil, tx.Factory().NewIdentifier("lineNumber"), nil, nil, tx.Factory().NewNumericLiteral(strconv.FormatInt(int64(line+1), 10), ast.TokenFlagsNone)), + tx.Factory().NewPropertyAssignment(nil, tx.Factory().NewIdentifier("columnNumber"), nil, nil, tx.Factory().NewNumericLiteral(strconv.FormatInt(int64(col+1), 10), ast.TokenFlagsNone)), }), false)) // __self development flag args = append(args, tx.Factory().NewThisExpression()) @@ -767,7 +775,7 @@ func (tx *JSXTransformer) visitJsxText(text *ast.JsxText) *ast.Node { if len(fixed) == 0 { return nil } - return tx.Factory().NewStringLiteral(fixed) + return tx.Factory().NewStringLiteral(fixed, ast.TokenFlagsNone) } func addLineOfJsxText(b *strings.Builder, trimmedLine string, isInitial bool) { diff --git a/internal/transformers/moduletransforms/commonjsmodule.go b/internal/transformers/moduletransforms/commonjsmodule.go index 6664aa820e..fa9a29f8b1 100644 --- a/internal/transformers/moduletransforms/commonjsmodule.go +++ b/internal/transformers/moduletransforms/commonjsmodule.go @@ -269,7 +269,7 @@ func (tx *CommonJSModuleTransformer) createUnderscoreUnderscoreESModule() *ast.S nil, /*typeArguments*/ tx.Factory().NewNodeList([]*ast.Node{ tx.Factory().NewIdentifier("exports"), - tx.Factory().NewStringLiteral("__esModule"), + tx.Factory().NewStringLiteral("__esModule", ast.TokenFlagsNone), tx.Factory().NewObjectLiteralExpression( tx.Factory().NewNodeList([]*ast.Node{ tx.Factory().NewPropertyAssignment( diff --git a/internal/transformers/moduletransforms/esmodule.go b/internal/transformers/moduletransforms/esmodule.go index 5d32b40664..90c7f54d45 100644 --- a/internal/transformers/moduletransforms/esmodule.go +++ b/internal/transformers/moduletransforms/esmodule.go @@ -320,7 +320,7 @@ func (tx *ESModuleTransformer) createRequireCall(node *ast.Node /*ImportDeclarat }), ), ), - tx.Factory().NewStringLiteral("module"), + tx.Factory().NewStringLiteral("module", ast.TokenFlagsNone), nil, /*attributes*/ ) tx.EmitContext().AddEmitFlags(importStatement, printer.EFCustomPrologue) diff --git a/internal/transformers/moduletransforms/externalmoduleinfo.go b/internal/transformers/moduletransforms/externalmoduleinfo.go index ce065652d9..fc6c9ab67d 100644 --- a/internal/transformers/moduletransforms/externalmoduleinfo.go +++ b/internal/transformers/moduletransforms/externalmoduleinfo.go @@ -259,7 +259,7 @@ func createExternalHelpersImportDeclarationIfNeeded(emitContext *printer.EmitCon nil, /*modifiers*/ false, /*isTypeOnly*/ externalHelpersModuleName, - emitContext.Factory.NewExternalModuleReference(emitContext.Factory.NewStringLiteral(externalHelpersModuleNameText)), + emitContext.Factory.NewExternalModuleReference(emitContext.Factory.NewStringLiteral(externalHelpersModuleNameText, ast.TokenFlagsNone)), ) emitContext.AddEmitFlags(externalHelpersImportDeclaration, printer.EFNeverApplyImportHelper|printer.EFCustomPrologue) return externalHelpersImportDeclaration @@ -293,7 +293,7 @@ func createExternalHelpersImportDeclarationIfNeeded(emitContext *printer.EmitCon externalHelpersImportDeclaration := emitContext.Factory.NewImportDeclaration( nil, /*modifiers*/ emitContext.Factory.NewImportClause(ast.KindUnknown /*phaseModifier*/, nil /*name*/, namedBindings), - emitContext.Factory.NewStringLiteral(externalHelpersModuleNameText), + emitContext.Factory.NewStringLiteral(externalHelpersModuleNameText, ast.TokenFlagsNone), nil, /*attributes*/ ) diff --git a/internal/transformers/moduletransforms/utilities.go b/internal/transformers/moduletransforms/utilities.go index 5428fdb987..03a3eefa29 100644 --- a/internal/transformers/moduletransforms/utilities.go +++ b/internal/transformers/moduletransforms/utilities.go @@ -25,7 +25,7 @@ func rewriteModuleSpecifier(emitContext *printer.EmitContext, node *ast.Expressi } updatedText := tspath.ChangeExtension(node.Text(), outputpaths.GetOutputExtension(node.Text(), compilerOptions.Jsx)) if updatedText != node.Text() { - updated := emitContext.Factory.NewStringLiteral(updatedText) + updated := emitContext.Factory.NewStringLiteral(updatedText, node.AsStringLiteral().TokenFlags) // !!! set quote style emitContext.SetOriginal(updated, node) emitContext.AssignCommentAndSourceMapRanges(updated, node) @@ -59,7 +59,7 @@ func getExternalModuleNameLiteral(factory *printer.NodeFactory, importNode *ast. name = tryRenameExternalModule(factory, moduleName, sourceFile) } if name == nil { - name = factory.NewStringLiteral(moduleName.Text()) + name = factory.NewStringLiteral(moduleName.Text(), moduleName.AsStringLiteral().TokenFlags) } return name } diff --git a/internal/transformers/tstransforms/runtimesyntax.go b/internal/transformers/tstransforms/runtimesyntax.go index 8c3ad6a817..76436fab16 100644 --- a/internal/transformers/tstransforms/runtimesyntax.go +++ b/internal/transformers/tstransforms/runtimesyntax.go @@ -191,9 +191,9 @@ func (tx *RuntimeSyntaxTransformer) getExpressionForPropertyName(member *ast.Enu case ast.KindIdentifier: return tx.Factory().NewStringLiteralFromNode(name) case ast.KindStringLiteral: - return tx.Factory().NewStringLiteral(name.Text()) + return tx.Factory().NewStringLiteral(name.Text(), name.AsStringLiteral().TokenFlags) case ast.KindNumericLiteral: - return tx.Factory().NewNumericLiteral(name.Text()) + return tx.Factory().NewNumericLiteral(name.Text(), name.AsNumericLiteral().TokenFlags) default: return name } @@ -530,7 +530,7 @@ func (tx *RuntimeSyntaxTransformer) transformEnumMember( ifStatement := tx.Factory().NewIfStatement( tx.Factory().NewStrictInequalityExpression( tx.Factory().NewTypeOfExpression(tx.getEnumQualifiedReference(enum, member)), - tx.Factory().NewStringLiteral("string"), + tx.Factory().NewStringLiteral("string", ast.TokenFlagsNone), ), tx.Factory().NewExpressionStatement( tx.Factory().NewAssignmentExpression( diff --git a/internal/transformers/tstransforms/utilities.go b/internal/transformers/tstransforms/utilities.go index 9e0f04f17f..06b3f9dd83 100644 --- a/internal/transformers/tstransforms/utilities.go +++ b/internal/transformers/tstransforms/utilities.go @@ -21,7 +21,7 @@ func convertEntityNameToExpression(emitContext *printer.EmitContext, name *ast.E func constantExpression(value any, factory *printer.NodeFactory) *ast.Expression { switch value := value.(type) { case string: - return factory.NewStringLiteral(value) + return factory.NewStringLiteral(value, ast.TokenFlagsNone) case jsnum.Number: if value.IsInf() || value.IsNaN() { return nil @@ -29,7 +29,7 @@ func constantExpression(value any, factory *printer.NodeFactory) *ast.Expression if value < 0 { return factory.NewPrefixUnaryExpression(ast.KindMinusToken, constantExpression(-value, factory)) } - return factory.NewNumericLiteral(value.String()) + return factory.NewNumericLiteral(value.String(), ast.TokenFlagsNone) } return nil } From ace3dee488597d798d091231168883f481f6374c Mon Sep 17 00:00:00 2001 From: Gabriela Araujo Britto Date: Thu, 11 Dec 2025 01:17:17 +0000 Subject: [PATCH 2/5] tests + revert single quote propagation to match strada --- .../moduletransforms/utilities.go | 3 +- .../compiler/enumWithQuotedElementName1.js | 2 +- .../enumWithQuotedElementName1.js.diff | 9 +++++ .../compiler/enumWithUnicodeEscape1.js | 2 +- .../compiler/enumWithUnicodeEscape1.js.diff | 9 +++++ .../submodule/compiler/jsxElementType.symbols | 10 ++--- .../compiler/jsxElementType.symbols.diff | 33 ---------------- .../compiler/numericClassMembers1.symbols | 4 +- .../numericClassMembers1.symbols.diff | 6 +-- .../compiler/numericIndexExpressions.symbols | 6 +-- .../numericIndexExpressions.symbols.diff | 22 ----------- ...ponentsInstantiaionLimitNotReached.symbols | 4 +- ...tsInstantiaionLimitNotReached.symbols.diff | 20 ---------- ...ithObjectMembersStringNumericNames.symbols | 12 +++--- ...jectMembersStringNumericNames.symbols.diff | 39 +++---------------- ...JsxNamespaceNamesQuestionableForms.symbols | 6 +-- ...mespaceNamesQuestionableForms.symbols.diff | 22 ----------- ...terfaceIncompatibleWithBaseIndexer.symbols | 2 +- ...ceIncompatibleWithBaseIndexer.symbols.diff | 10 ----- .../conformance/indexersInClassType.symbols | 6 +-- .../indexersInClassType.symbols.diff | 21 ---------- .../mergedInterfacesWithIndexers2.symbols | 2 +- ...mergedInterfacesWithIndexers2.symbols.diff | 10 ----- .../conformance/quotedConstructors.symbols | 4 +- .../quotedConstructors.symbols.diff | 13 ------- .../strictPropertyInitialization.symbols | 6 +-- .../strictPropertyInitialization.symbols.diff | 21 ---------- .../subtypingWithObjectMembers.symbols | 16 ++++---- .../subtypingWithObjectMembers.symbols.diff | 30 +++----------- .../subtypingWithObjectMembers2.symbols | 16 ++++---- .../subtypingWithObjectMembers2.symbols.diff | 30 +++----------- .../subtypingWithObjectMembers3.symbols | 16 ++++---- .../subtypingWithObjectMembers3.symbols.diff | 30 +++----------- .../subtypingWithObjectMembers4.symbols | 4 +- .../subtypingWithObjectMembers4.symbols.diff | 13 +------ .../subtypingWithObjectMembers5.symbols | 8 ++-- .../subtypingWithObjectMembers5.symbols.diff | 26 ++----------- ...pingWithObjectMembersAccessibility.symbols | 4 +- ...ithObjectMembersAccessibility.symbols.diff | 19 --------- ...ingWithObjectMembersAccessibility2.symbols | 8 ++-- ...thObjectMembersAccessibility2.symbols.diff | 38 ------------------ ...typingWithObjectMembersOptionality.symbols | 8 ++-- ...gWithObjectMembersOptionality.symbols.diff | 26 ++----------- ...ypingWithObjectMembersOptionality2.symbols | 4 +- ...WithObjectMembersOptionality2.symbols.diff | 19 --------- ...ypingWithObjectMembersOptionality3.symbols | 4 +- ...WithObjectMembersOptionality3.symbols.diff | 13 +------ ...ypingWithObjectMembersOptionality4.symbols | 4 +- ...WithObjectMembersOptionality4.symbols.diff | 13 +------ .../conformance/tsxElementResolution.symbols | 6 +-- .../tsxElementResolution.symbols.diff | 24 ------------ .../submodule/conformance/typeofThis.symbols | 8 ++-- .../conformance/typeofThis.symbols.diff | 24 ------------ .../unionAndIntersectionInference1.symbols | 2 +- ...nionAndIntersectionInference1.symbols.diff | 11 ------ 55 files changed, 142 insertions(+), 586 deletions(-) create mode 100644 testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js.diff create mode 100644 testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js.diff delete mode 100644 testdata/baselines/reference/submodule/compiler/jsxElementType.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/compiler/numericIndexExpressions.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/compiler/styledComponentsInstantiaionLimitNotReached.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/checkJsxNamespaceNamesQuestionableForms.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/derivedInterfaceIncompatibleWithBaseIndexer.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/indexersInClassType.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/mergedInterfacesWithIndexers2.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/quotedConstructors.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility2.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality2.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/tsxElementResolution.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/typeofThis.symbols.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/unionAndIntersectionInference1.symbols.diff diff --git a/internal/transformers/moduletransforms/utilities.go b/internal/transformers/moduletransforms/utilities.go index 03a3eefa29..c53d132d77 100644 --- a/internal/transformers/moduletransforms/utilities.go +++ b/internal/transformers/moduletransforms/utilities.go @@ -26,7 +26,6 @@ func rewriteModuleSpecifier(emitContext *printer.EmitContext, node *ast.Expressi updatedText := tspath.ChangeExtension(node.Text(), outputpaths.GetOutputExtension(node.Text(), compilerOptions.Jsx)) if updatedText != node.Text() { updated := emitContext.Factory.NewStringLiteral(updatedText, node.AsStringLiteral().TokenFlags) - // !!! set quote style emitContext.SetOriginal(updated, node) emitContext.AssignCommentAndSourceMapRanges(updated, node) return updated @@ -59,7 +58,7 @@ func getExternalModuleNameLiteral(factory *printer.NodeFactory, importNode *ast. name = tryRenameExternalModule(factory, moduleName, sourceFile) } if name == nil { - name = factory.NewStringLiteral(moduleName.Text(), moduleName.AsStringLiteral().TokenFlags) + name = factory.NewStringLiteral(moduleName.Text(), ast.TokenFlagsNone) } return name } diff --git a/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js b/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js index 46bd9a0807..07c9a91336 100644 --- a/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js +++ b/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js @@ -8,5 +8,5 @@ enum E { //// [enumWithQuotedElementName1.js] var E; (function (E) { - E[E["fo\"o"] = 0] = "fo\"o"; + E[E['fo"o'] = 0] = 'fo"o'; })(E || (E = {})); diff --git a/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js.diff b/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js.diff new file mode 100644 index 0000000000..a5edf2e738 --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js.diff @@ -0,0 +1,9 @@ +--- old.enumWithQuotedElementName1.js ++++ new.enumWithQuotedElementName1.js +@@= skipped -7, +7 lines =@@ + //// [enumWithQuotedElementName1.js] + var E; + (function (E) { +- E[E["fo\"o"] = 0] = "fo\"o"; ++ E[E['fo"o'] = 0] = 'fo"o'; + })(E || (E = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js b/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js index 6cd3a92d0b..d330f78132 100644 --- a/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js +++ b/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js @@ -9,5 +9,5 @@ enum E { //// [enumWithUnicodeEscape1.js] var E; (function (E) { - E[E["gold \u2730"] = 0] = "gold \u2730"; + E[E['gold \u2730'] = 0] = 'gold \u2730'; })(E || (E = {})); diff --git a/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js.diff b/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js.diff new file mode 100644 index 0000000000..71caa469bb --- /dev/null +++ b/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js.diff @@ -0,0 +1,9 @@ +--- old.enumWithUnicodeEscape1.js ++++ new.enumWithUnicodeEscape1.js +@@= skipped -8, +8 lines =@@ + //// [enumWithUnicodeEscape1.js] + var E; + (function (E) { +- E[E["gold \u2730"] = 0] = "gold \u2730"; ++ E[E['gold \u2730'] = 0] = 'gold \u2730'; + })(E || (E = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/jsxElementType.symbols b/testdata/baselines/reference/submodule/compiler/jsxElementType.symbols index 2ba2e6affb..4e9c238f93 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxElementType.symbols +++ b/testdata/baselines/reference/submodule/compiler/jsxElementType.symbols @@ -64,8 +64,8 @@ declare global { >IntrinsicElements : Symbol(IntrinsicElements, Decl(react16.d.ts, 2514, 86), Decl(jsxElementType.tsx, 22, 67), Decl(jsxElementType.tsx, 101, 19)) ['my-custom-element']: React.DOMAttributes; ->['my-custom-element'] : Symbol(IntrinsicElements["my-custom-element"], Decl(jsxElementType.tsx, 23, 33)) ->'my-custom-element' : Symbol(IntrinsicElements["my-custom-element"], Decl(jsxElementType.tsx, 23, 33)) +>['my-custom-element'] : Symbol(IntrinsicElements['my-custom-element'], Decl(jsxElementType.tsx, 23, 33)) +>'my-custom-element' : Symbol(IntrinsicElements['my-custom-element'], Decl(jsxElementType.tsx, 23, 33)) >React : Symbol(React, Decl(jsxElementType.tsx, 1, 6)) >DOMAttributes : Symbol(React.DOMAttributes, Decl(react16.d.ts, 844, 9)) } @@ -225,7 +225,7 @@ Component = RenderStringClass; >div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114)) ; ->my-custom-element : Symbol(JSX.IntrinsicElements["my-custom-element"], Decl(jsxElementType.tsx, 23, 33)) +>my-custom-element : Symbol(JSX.IntrinsicElements['my-custom-element'], Decl(jsxElementType.tsx, 23, 33)) // Undeclared host element types are still rejected ; @@ -284,8 +284,8 @@ declare global { >IntrinsicElements : Symbol(IntrinsicElements, Decl(react16.d.ts, 2514, 86), Decl(jsxElementType.tsx, 22, 67), Decl(jsxElementType.tsx, 101, 19)) ['a:b']: { a: string }; ->['a:b'] : Symbol(IntrinsicElements["a:b"], Decl(jsxElementType.tsx, 102, 35)) ->'a:b' : Symbol(IntrinsicElements["a:b"], Decl(jsxElementType.tsx, 102, 35)) +>['a:b'] : Symbol(IntrinsicElements['a:b'], Decl(jsxElementType.tsx, 102, 35)) +>'a:b' : Symbol(IntrinsicElements['a:b'], Decl(jsxElementType.tsx, 102, 35)) >a : Symbol(a, Decl(jsxElementType.tsx, 103, 20)) } } diff --git a/testdata/baselines/reference/submodule/compiler/jsxElementType.symbols.diff b/testdata/baselines/reference/submodule/compiler/jsxElementType.symbols.diff deleted file mode 100644 index 5b050c4bf5..0000000000 --- a/testdata/baselines/reference/submodule/compiler/jsxElementType.symbols.diff +++ /dev/null @@ -1,33 +0,0 @@ ---- old.jsxElementType.symbols -+++ new.jsxElementType.symbols -@@= skipped -63, +63 lines =@@ - >IntrinsicElements : Symbol(IntrinsicElements, Decl(react16.d.ts, 2514, 86), Decl(jsxElementType.tsx, 22, 67), Decl(jsxElementType.tsx, 101, 19)) - - ['my-custom-element']: React.DOMAttributes; -->['my-custom-element'] : Symbol(IntrinsicElements['my-custom-element'], Decl(jsxElementType.tsx, 23, 33)) -->'my-custom-element' : Symbol(IntrinsicElements['my-custom-element'], Decl(jsxElementType.tsx, 23, 33)) -+>['my-custom-element'] : Symbol(IntrinsicElements["my-custom-element"], Decl(jsxElementType.tsx, 23, 33)) -+>'my-custom-element' : Symbol(IntrinsicElements["my-custom-element"], Decl(jsxElementType.tsx, 23, 33)) - >React : Symbol(React, Decl(jsxElementType.tsx, 1, 6)) - >DOMAttributes : Symbol(React.DOMAttributes, Decl(react16.d.ts, 844, 9)) - } -@@= skipped -161, +161 lines =@@ - >div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114)) - - ; -->my-custom-element : Symbol(JSX.IntrinsicElements['my-custom-element'], Decl(jsxElementType.tsx, 23, 33)) -+>my-custom-element : Symbol(JSX.IntrinsicElements["my-custom-element"], Decl(jsxElementType.tsx, 23, 33)) - - // Undeclared host element types are still rejected - ; -@@= skipped -59, +59 lines =@@ - >IntrinsicElements : Symbol(IntrinsicElements, Decl(react16.d.ts, 2514, 86), Decl(jsxElementType.tsx, 22, 67), Decl(jsxElementType.tsx, 101, 19)) - - ['a:b']: { a: string }; -->['a:b'] : Symbol(IntrinsicElements['a:b'], Decl(jsxElementType.tsx, 102, 35)) -->'a:b' : Symbol(IntrinsicElements['a:b'], Decl(jsxElementType.tsx, 102, 35)) -+>['a:b'] : Symbol(IntrinsicElements["a:b"], Decl(jsxElementType.tsx, 102, 35)) -+>'a:b' : Symbol(IntrinsicElements["a:b"], Decl(jsxElementType.tsx, 102, 35)) - >a : Symbol(a, Decl(jsxElementType.tsx, 103, 20)) - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/numericClassMembers1.symbols b/testdata/baselines/reference/submodule/compiler/numericClassMembers1.symbols index 5220c6a289..11634b6f1a 100644 --- a/testdata/baselines/reference/submodule/compiler/numericClassMembers1.symbols +++ b/testdata/baselines/reference/submodule/compiler/numericClassMembers1.symbols @@ -25,9 +25,9 @@ class C236 { >C236 : Symbol(C236, Decl(numericClassMembers1.ts, 8, 1)) '0.0' = 1; ->'0.0' : Symbol(C236["00"], Decl(numericClassMembers1.ts, 10, 12)) +>'0.0' : Symbol(C236['00'], Decl(numericClassMembers1.ts, 10, 12)) '0' = 2; ->'0' : Symbol(C236["0"], Decl(numericClassMembers1.ts, 11, 14)) +>'0' : Symbol(C236['0'], Decl(numericClassMembers1.ts, 11, 14)) } diff --git a/testdata/baselines/reference/submodule/compiler/numericClassMembers1.symbols.diff b/testdata/baselines/reference/submodule/compiler/numericClassMembers1.symbols.diff index 084bfdac7c..224f80a3a7 100644 --- a/testdata/baselines/reference/submodule/compiler/numericClassMembers1.symbols.diff +++ b/testdata/baselines/reference/submodule/compiler/numericClassMembers1.symbols.diff @@ -5,9 +5,7 @@ '0.0' = 1; ->'0.0' : Symbol(C236['0.0'], Decl(numericClassMembers1.ts, 10, 12)) -+>'0.0' : Symbol(C236["00"], Decl(numericClassMembers1.ts, 10, 12)) ++>'0.0' : Symbol(C236['00'], Decl(numericClassMembers1.ts, 10, 12)) '0' = 2; -->'0' : Symbol(C236['0'], Decl(numericClassMembers1.ts, 11, 14)) -+>'0' : Symbol(C236["0"], Decl(numericClassMembers1.ts, 11, 14)) - } + >'0' : Symbol(C236['0'], Decl(numericClassMembers1.ts, 11, 14)) \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/numericIndexExpressions.symbols b/testdata/baselines/reference/submodule/compiler/numericIndexExpressions.symbols index 912ef6bbc9..616a542809 100644 --- a/testdata/baselines/reference/submodule/compiler/numericIndexExpressions.symbols +++ b/testdata/baselines/reference/submodule/compiler/numericIndexExpressions.symbols @@ -11,7 +11,7 @@ interface Strings1 { >Strings1 : Symbol(Strings1, Decl(numericIndexExpressions.ts, 2, 1)) '1': string; ->'1' : Symbol(Strings1["1"], Decl(numericIndexExpressions.ts, 3, 20)) +>'1' : Symbol(Strings1['1'], Decl(numericIndexExpressions.ts, 3, 20)) } @@ -33,9 +33,9 @@ var y: Strings1; y['1'] = 4; // should be error >y : Symbol(y, Decl(numericIndexExpressions.ts, 12, 3)) ->'1' : Symbol(Strings1["1"], Decl(numericIndexExpressions.ts, 3, 20)) +>'1' : Symbol(Strings1['1'], Decl(numericIndexExpressions.ts, 3, 20)) y[1] = 4; // should be error >y : Symbol(y, Decl(numericIndexExpressions.ts, 12, 3)) ->1 : Symbol(Strings1["1"], Decl(numericIndexExpressions.ts, 3, 20)) +>1 : Symbol(Strings1['1'], Decl(numericIndexExpressions.ts, 3, 20)) diff --git a/testdata/baselines/reference/submodule/compiler/numericIndexExpressions.symbols.diff b/testdata/baselines/reference/submodule/compiler/numericIndexExpressions.symbols.diff deleted file mode 100644 index de9685a02a..0000000000 --- a/testdata/baselines/reference/submodule/compiler/numericIndexExpressions.symbols.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.numericIndexExpressions.symbols -+++ new.numericIndexExpressions.symbols -@@= skipped -10, +10 lines =@@ - >Strings1 : Symbol(Strings1, Decl(numericIndexExpressions.ts, 2, 1)) - - '1': string; -->'1' : Symbol(Strings1['1'], Decl(numericIndexExpressions.ts, 3, 20)) -+>'1' : Symbol(Strings1["1"], Decl(numericIndexExpressions.ts, 3, 20)) - } - - -@@= skipped -22, +22 lines =@@ - - y['1'] = 4; // should be error - >y : Symbol(y, Decl(numericIndexExpressions.ts, 12, 3)) -->'1' : Symbol(Strings1['1'], Decl(numericIndexExpressions.ts, 3, 20)) -+>'1' : Symbol(Strings1["1"], Decl(numericIndexExpressions.ts, 3, 20)) - - y[1] = 4; // should be error - >y : Symbol(y, Decl(numericIndexExpressions.ts, 12, 3)) -->1 : Symbol(Strings1['1'], Decl(numericIndexExpressions.ts, 3, 20)) -+>1 : Symbol(Strings1["1"], Decl(numericIndexExpressions.ts, 3, 20)) diff --git a/testdata/baselines/reference/submodule/compiler/styledComponentsInstantiaionLimitNotReached.symbols b/testdata/baselines/reference/submodule/compiler/styledComponentsInstantiaionLimitNotReached.symbols index 4df7b8ff4b..5bde3e49cf 100644 --- a/testdata/baselines/reference/submodule/compiler/styledComponentsInstantiaionLimitNotReached.symbols +++ b/testdata/baselines/reference/submodule/compiler/styledComponentsInstantiaionLimitNotReached.symbols @@ -71,7 +71,7 @@ interface MEMO_STATICS { >MEMO_STATICS : Symbol(MEMO_STATICS, Decl(styledComponentsInstantiaionLimitNotReached.ts, 25, 1)) '$$typeof': true; ->'$$typeof' : Symbol(MEMO_STATICS["$$typeof"], Decl(styledComponentsInstantiaionLimitNotReached.ts, 27, 24)) +>'$$typeof' : Symbol(MEMO_STATICS['$$typeof'], Decl(styledComponentsInstantiaionLimitNotReached.ts, 27, 24)) compare: true; >compare : Symbol(MEMO_STATICS.compare, Decl(styledComponentsInstantiaionLimitNotReached.ts, 28, 21)) @@ -93,7 +93,7 @@ interface FORWARD_REF_STATICS { >FORWARD_REF_STATICS : Symbol(FORWARD_REF_STATICS, Decl(styledComponentsInstantiaionLimitNotReached.ts, 34, 1)) '$$typeof': true; ->'$$typeof' : Symbol(FORWARD_REF_STATICS["$$typeof"], Decl(styledComponentsInstantiaionLimitNotReached.ts, 36, 31)) +>'$$typeof' : Symbol(FORWARD_REF_STATICS['$$typeof'], Decl(styledComponentsInstantiaionLimitNotReached.ts, 36, 31)) render: true; >render : Symbol(FORWARD_REF_STATICS.render, Decl(styledComponentsInstantiaionLimitNotReached.ts, 37, 21)) diff --git a/testdata/baselines/reference/submodule/compiler/styledComponentsInstantiaionLimitNotReached.symbols.diff b/testdata/baselines/reference/submodule/compiler/styledComponentsInstantiaionLimitNotReached.symbols.diff deleted file mode 100644 index 23ed241bc6..0000000000 --- a/testdata/baselines/reference/submodule/compiler/styledComponentsInstantiaionLimitNotReached.symbols.diff +++ /dev/null @@ -1,20 +0,0 @@ ---- old.styledComponentsInstantiaionLimitNotReached.symbols -+++ new.styledComponentsInstantiaionLimitNotReached.symbols -@@= skipped -70, +70 lines =@@ - >MEMO_STATICS : Symbol(MEMO_STATICS, Decl(styledComponentsInstantiaionLimitNotReached.ts, 25, 1)) - - '$$typeof': true; -->'$$typeof' : Symbol(MEMO_STATICS['$$typeof'], Decl(styledComponentsInstantiaionLimitNotReached.ts, 27, 24)) -+>'$$typeof' : Symbol(MEMO_STATICS["$$typeof"], Decl(styledComponentsInstantiaionLimitNotReached.ts, 27, 24)) - - compare: true; - >compare : Symbol(MEMO_STATICS.compare, Decl(styledComponentsInstantiaionLimitNotReached.ts, 28, 21)) -@@= skipped -22, +22 lines =@@ - >FORWARD_REF_STATICS : Symbol(FORWARD_REF_STATICS, Decl(styledComponentsInstantiaionLimitNotReached.ts, 34, 1)) - - '$$typeof': true; -->'$$typeof' : Symbol(FORWARD_REF_STATICS['$$typeof'], Decl(styledComponentsInstantiaionLimitNotReached.ts, 36, 31)) -+>'$$typeof' : Symbol(FORWARD_REF_STATICS["$$typeof"], Decl(styledComponentsInstantiaionLimitNotReached.ts, 36, 31)) - - render: true; - >render : Symbol(FORWARD_REF_STATICS.render, Decl(styledComponentsInstantiaionLimitNotReached.ts, 37, 21)) \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/assignmentCompatWithObjectMembersStringNumericNames.symbols b/testdata/baselines/reference/submodule/conformance/assignmentCompatWithObjectMembersStringNumericNames.symbols index d47e454165..753be90dea 100644 --- a/testdata/baselines/reference/submodule/conformance/assignmentCompatWithObjectMembersStringNumericNames.symbols +++ b/testdata/baselines/reference/submodule/conformance/assignmentCompatWithObjectMembersStringNumericNames.symbols @@ -9,11 +9,11 @@ module JustStrings { class S { '1': string; } >S : Symbol(S, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 3, 20)) ->'1' : Symbol(S["1"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 4, 13)) +>'1' : Symbol(S['1'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 4, 13)) class T { '1.': string; } >T : Symbol(T, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 4, 28)) ->'1.' : Symbol(T["1"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 5, 13)) +>'1.' : Symbol(T['1'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 5, 13)) var s: S; >s : Symbol(s, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 6, 7)) @@ -25,12 +25,12 @@ module JustStrings { interface S2 { '1': string; bar?: string } >S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 7, 13)) ->'1' : Symbol(S2["1"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 9, 18)) +>'1' : Symbol(S2['1'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 9, 18)) >bar : Symbol(S2.bar, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 9, 31)) interface T2 { '1.0': string; baz?: string } >T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 9, 46)) ->'1.0' : Symbol(T2["10"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 10, 18)) +>'1.0' : Symbol(T2['10'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 10, 18)) >baz : Symbol(T2.baz, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 10, 33)) var s2: S2; @@ -141,7 +141,7 @@ module NumbersAndStrings { class S { '1': string; } >S : Symbol(S, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 44, 26)) ->'1' : Symbol(S["1"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 45, 13)) +>'1' : Symbol(S['1'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 45, 13)) class T { 1: string; } >T : Symbol(T, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 45, 28)) @@ -157,7 +157,7 @@ module NumbersAndStrings { interface S2 { '1': string; bar?: string } >S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 48, 13)) ->'1' : Symbol(S2["1"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 50, 18)) +>'1' : Symbol(S2['1'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 50, 18)) >bar : Symbol(S2.bar, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 50, 31)) interface T2 { 1.0: string; baz?: string } diff --git a/testdata/baselines/reference/submodule/conformance/assignmentCompatWithObjectMembersStringNumericNames.symbols.diff b/testdata/baselines/reference/submodule/conformance/assignmentCompatWithObjectMembersStringNumericNames.symbols.diff index 66ecf6faeb..af14d33f87 100644 --- a/testdata/baselines/reference/submodule/conformance/assignmentCompatWithObjectMembersStringNumericNames.symbols.diff +++ b/testdata/baselines/reference/submodule/conformance/assignmentCompatWithObjectMembersStringNumericNames.symbols.diff @@ -1,49 +1,20 @@ --- old.assignmentCompatWithObjectMembersStringNumericNames.symbols +++ new.assignmentCompatWithObjectMembersStringNumericNames.symbols -@@= skipped -8, +8 lines =@@ - - class S { '1': string; } - >S : Symbol(S, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 3, 20)) -->'1' : Symbol(S['1'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 4, 13)) -+>'1' : Symbol(S["1"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 4, 13)) +@@= skipped -12, +12 lines =@@ class T { '1.': string; } >T : Symbol(T, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 4, 28)) ->'1.' : Symbol(T['1.'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 5, 13)) -+>'1.' : Symbol(T["1"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 5, 13)) ++>'1.' : Symbol(T['1'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 5, 13)) var s: S; >s : Symbol(s, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 6, 7)) -@@= skipped -16, +16 lines =@@ - - interface S2 { '1': string; bar?: string } - >S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 7, 13)) -->'1' : Symbol(S2['1'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 9, 18)) -+>'1' : Symbol(S2["1"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 9, 18)) - >bar : Symbol(S2.bar, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 9, 31)) +@@= skipped -17, +17 lines =@@ interface T2 { '1.0': string; baz?: string } >T2 : Symbol(T2, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 9, 46)) ->'1.0' : Symbol(T2['1.0'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 10, 18)) -+>'1.0' : Symbol(T2["10"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 10, 18)) ++>'1.0' : Symbol(T2['10'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 10, 18)) >baz : Symbol(T2.baz, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 10, 33)) - var s2: S2; -@@= skipped -116, +116 lines =@@ - - class S { '1': string; } - >S : Symbol(S, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 44, 26)) -->'1' : Symbol(S['1'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 45, 13)) -+>'1' : Symbol(S["1"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 45, 13)) - - class T { 1: string; } - >T : Symbol(T, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 45, 28)) -@@= skipped -16, +16 lines =@@ - - interface S2 { '1': string; bar?: string } - >S2 : Symbol(S2, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 48, 13)) -->'1' : Symbol(S2['1'], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 50, 18)) -+>'1' : Symbol(S2["1"], Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 50, 18)) - >bar : Symbol(S2.bar, Decl(assignmentCompatWithObjectMembersStringNumericNames.ts, 50, 31)) - - interface T2 { 1.0: string; baz?: string } \ No newline at end of file + var s2: S2; \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/checkJsxNamespaceNamesQuestionableForms.symbols b/testdata/baselines/reference/submodule/conformance/checkJsxNamespaceNamesQuestionableForms.symbols index 3d552a7411..e2d5bb5622 100644 --- a/testdata/baselines/reference/submodule/conformance/checkJsxNamespaceNamesQuestionableForms.symbols +++ b/testdata/baselines/reference/submodule/conformance/checkJsxNamespaceNamesQuestionableForms.symbols @@ -8,17 +8,17 @@ declare namespace JSX { >IntrinsicElements : Symbol(IntrinsicElements, Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 0, 23)) 'this:b': any; ->'this:b' : Symbol(IntrinsicElements["this:b"], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 1, 33)) +>'this:b' : Symbol(IntrinsicElements['this:b'], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 1, 33)) 'b:c': { ->'b:c' : Symbol(IntrinsicElements["b:c"], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 2, 22)) +>'b:c' : Symbol(IntrinsicElements['b:c'], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 2, 22)) x: any >x : Symbol(x, Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 3, 16)) }; 'a:b': any; ->'a:b' : Symbol(IntrinsicElements["a:b"], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 5, 10)) +>'a:b' : Symbol(IntrinsicElements['a:b'], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 5, 10)) } } diff --git a/testdata/baselines/reference/submodule/conformance/checkJsxNamespaceNamesQuestionableForms.symbols.diff b/testdata/baselines/reference/submodule/conformance/checkJsxNamespaceNamesQuestionableForms.symbols.diff deleted file mode 100644 index 686edd83c5..0000000000 --- a/testdata/baselines/reference/submodule/conformance/checkJsxNamespaceNamesQuestionableForms.symbols.diff +++ /dev/null @@ -1,22 +0,0 @@ ---- old.checkJsxNamespaceNamesQuestionableForms.symbols -+++ new.checkJsxNamespaceNamesQuestionableForms.symbols -@@= skipped -7, +7 lines =@@ - >IntrinsicElements : Symbol(IntrinsicElements, Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 0, 23)) - - 'this:b': any; -->'this:b' : Symbol(IntrinsicElements['this:b'], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 1, 33)) -+>'this:b' : Symbol(IntrinsicElements["this:b"], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 1, 33)) - - 'b:c': { -->'b:c' : Symbol(IntrinsicElements['b:c'], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 2, 22)) -+>'b:c' : Symbol(IntrinsicElements["b:c"], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 2, 22)) - - x: any - >x : Symbol(x, Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 3, 16)) - - }; - 'a:b': any; -->'a:b' : Symbol(IntrinsicElements['a:b'], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 5, 10)) -+>'a:b' : Symbol(IntrinsicElements["a:b"], Decl(checkJsxNamespaceNamesQuestionableForms.tsx, 5, 10)) - } - } diff --git a/testdata/baselines/reference/submodule/conformance/derivedInterfaceIncompatibleWithBaseIndexer.symbols b/testdata/baselines/reference/submodule/conformance/derivedInterfaceIncompatibleWithBaseIndexer.symbols index b5cbeca442..49e157665a 100644 --- a/testdata/baselines/reference/submodule/conformance/derivedInterfaceIncompatibleWithBaseIndexer.symbols +++ b/testdata/baselines/reference/submodule/conformance/derivedInterfaceIncompatibleWithBaseIndexer.symbols @@ -28,7 +28,7 @@ interface Derived2 extends Base { >Base : Symbol(Base, Decl(derivedInterfaceIncompatibleWithBaseIndexer.ts, 0, 0)) '1': { y: number } // error ->'1' : Symbol(Derived2["1"], Decl(derivedInterfaceIncompatibleWithBaseIndexer.ts, 9, 33)) +>'1' : Symbol(Derived2['1'], Decl(derivedInterfaceIncompatibleWithBaseIndexer.ts, 9, 33)) >y : Symbol(y, Decl(derivedInterfaceIncompatibleWithBaseIndexer.ts, 10, 10)) } diff --git a/testdata/baselines/reference/submodule/conformance/derivedInterfaceIncompatibleWithBaseIndexer.symbols.diff b/testdata/baselines/reference/submodule/conformance/derivedInterfaceIncompatibleWithBaseIndexer.symbols.diff deleted file mode 100644 index 9c31179df9..0000000000 --- a/testdata/baselines/reference/submodule/conformance/derivedInterfaceIncompatibleWithBaseIndexer.symbols.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.derivedInterfaceIncompatibleWithBaseIndexer.symbols -+++ new.derivedInterfaceIncompatibleWithBaseIndexer.symbols -@@= skipped -27, +27 lines =@@ - >Base : Symbol(Base, Decl(derivedInterfaceIncompatibleWithBaseIndexer.ts, 0, 0)) - - '1': { y: number } // error -->'1' : Symbol(Derived2['1'], Decl(derivedInterfaceIncompatibleWithBaseIndexer.ts, 9, 33)) -+>'1' : Symbol(Derived2["1"], Decl(derivedInterfaceIncompatibleWithBaseIndexer.ts, 9, 33)) - >y : Symbol(y, Decl(derivedInterfaceIncompatibleWithBaseIndexer.ts, 10, 10)) - } diff --git a/testdata/baselines/reference/submodule/conformance/indexersInClassType.symbols b/testdata/baselines/reference/submodule/conformance/indexersInClassType.symbols index 1b4ab0c0de..de5c600108 100644 --- a/testdata/baselines/reference/submodule/conformance/indexersInClassType.symbols +++ b/testdata/baselines/reference/submodule/conformance/indexersInClassType.symbols @@ -17,7 +17,7 @@ class C { >Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --)) 'a': {} ->'a' : Symbol(C["a"], Decl(indexersInClassType.ts, 3, 12)) +>'a' : Symbol(C['a'], Decl(indexersInClassType.ts, 3, 12)) fn() { >fn : Symbol(C.fn, Decl(indexersInClassType.ts, 4, 11)) @@ -44,8 +44,8 @@ var r2 = r[1]; var r3 = r.a >r3 : Symbol(r3, Decl(indexersInClassType.ts, 14, 3)) ->r.a : Symbol(C["a"], Decl(indexersInClassType.ts, 3, 12)) +>r.a : Symbol(C['a'], Decl(indexersInClassType.ts, 3, 12)) >r : Symbol(r, Decl(indexersInClassType.ts, 12, 3)) ->a : Symbol(C["a"], Decl(indexersInClassType.ts, 3, 12)) +>a : Symbol(C['a'], Decl(indexersInClassType.ts, 3, 12)) diff --git a/testdata/baselines/reference/submodule/conformance/indexersInClassType.symbols.diff b/testdata/baselines/reference/submodule/conformance/indexersInClassType.symbols.diff deleted file mode 100644 index e743a2cd8b..0000000000 --- a/testdata/baselines/reference/submodule/conformance/indexersInClassType.symbols.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.indexersInClassType.symbols -+++ new.indexersInClassType.symbols -@@= skipped -16, +16 lines =@@ - >Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --)) - - 'a': {} -->'a' : Symbol(C['a'], Decl(indexersInClassType.ts, 3, 12)) -+>'a' : Symbol(C["a"], Decl(indexersInClassType.ts, 3, 12)) - - fn() { - >fn : Symbol(C.fn, Decl(indexersInClassType.ts, 4, 11)) -@@= skipped -27, +27 lines =@@ - - var r3 = r.a - >r3 : Symbol(r3, Decl(indexersInClassType.ts, 14, 3)) -->r.a : Symbol(C['a'], Decl(indexersInClassType.ts, 3, 12)) -+>r.a : Symbol(C["a"], Decl(indexersInClassType.ts, 3, 12)) - >r : Symbol(r, Decl(indexersInClassType.ts, 12, 3)) -->a : Symbol(C['a'], Decl(indexersInClassType.ts, 3, 12)) -+>a : Symbol(C["a"], Decl(indexersInClassType.ts, 3, 12)) - diff --git a/testdata/baselines/reference/submodule/conformance/mergedInterfacesWithIndexers2.symbols b/testdata/baselines/reference/submodule/conformance/mergedInterfacesWithIndexers2.symbols index 2138a8a77f..0384c5a32e 100644 --- a/testdata/baselines/reference/submodule/conformance/mergedInterfacesWithIndexers2.symbols +++ b/testdata/baselines/reference/submodule/conformance/mergedInterfacesWithIndexers2.symbols @@ -26,7 +26,7 @@ interface A2 { >x : Symbol(x, Decl(mergedInterfacesWithIndexers2.ts, 12, 5)) 'a': number; //error ->'a' : Symbol(A2["a"], Decl(mergedInterfacesWithIndexers2.ts, 12, 24)) +>'a' : Symbol(A2['a'], Decl(mergedInterfacesWithIndexers2.ts, 12, 24)) } diff --git a/testdata/baselines/reference/submodule/conformance/mergedInterfacesWithIndexers2.symbols.diff b/testdata/baselines/reference/submodule/conformance/mergedInterfacesWithIndexers2.symbols.diff deleted file mode 100644 index 8139dfd7da..0000000000 --- a/testdata/baselines/reference/submodule/conformance/mergedInterfacesWithIndexers2.symbols.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.mergedInterfacesWithIndexers2.symbols -+++ new.mergedInterfacesWithIndexers2.symbols -@@= skipped -25, +25 lines =@@ - >x : Symbol(x, Decl(mergedInterfacesWithIndexers2.ts, 12, 5)) - - 'a': number; //error -->'a' : Symbol(A2['a'], Decl(mergedInterfacesWithIndexers2.ts, 12, 24)) -+>'a' : Symbol(A2["a"], Decl(mergedInterfacesWithIndexers2.ts, 12, 24)) - } - diff --git a/testdata/baselines/reference/submodule/conformance/quotedConstructors.symbols b/testdata/baselines/reference/submodule/conformance/quotedConstructors.symbols index bf8c961fca..98349f72c8 100644 --- a/testdata/baselines/reference/submodule/conformance/quotedConstructors.symbols +++ b/testdata/baselines/reference/submodule/conformance/quotedConstructors.symbols @@ -29,8 +29,8 @@ class E { >E : Symbol(E, Decl(quotedConstructors.ts, 10, 1)) ['constructor']() { ->['constructor'] : Symbol(E["constructor"], Decl(quotedConstructors.ts, 12, 9)) ->'constructor' : Symbol(E["constructor"], Decl(quotedConstructors.ts, 12, 9)) +>['constructor'] : Symbol(E['constructor'], Decl(quotedConstructors.ts, 12, 9)) +>'constructor' : Symbol(E['constructor'], Decl(quotedConstructors.ts, 12, 9)) console.log(this); >console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) diff --git a/testdata/baselines/reference/submodule/conformance/quotedConstructors.symbols.diff b/testdata/baselines/reference/submodule/conformance/quotedConstructors.symbols.diff deleted file mode 100644 index 279c238004..0000000000 --- a/testdata/baselines/reference/submodule/conformance/quotedConstructors.symbols.diff +++ /dev/null @@ -1,13 +0,0 @@ ---- old.quotedConstructors.symbols -+++ new.quotedConstructors.symbols -@@= skipped -28, +28 lines =@@ - >E : Symbol(E, Decl(quotedConstructors.ts, 10, 1)) - - ['constructor']() { -->['constructor'] : Symbol(E['constructor'], Decl(quotedConstructors.ts, 12, 9)) -->'constructor' : Symbol(E['constructor'], Decl(quotedConstructors.ts, 12, 9)) -+>['constructor'] : Symbol(E["constructor"], Decl(quotedConstructors.ts, 12, 9)) -+>'constructor' : Symbol(E["constructor"], Decl(quotedConstructors.ts, 12, 9)) - - console.log(this); - >console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --)) \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.symbols b/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.symbols index a5b7f6407d..ef390be515 100644 --- a/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.symbols +++ b/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.symbols @@ -332,8 +332,8 @@ class C12 { >b : Symbol(b, Decl(strictPropertyInitialization.ts, 135, 5)) ['c']: number; ->['c'] : Symbol(C12["c"], Decl(strictPropertyInitialization.ts, 139, 16)) ->'c' : Symbol(C12["c"], Decl(strictPropertyInitialization.ts, 139, 16)) +>['c'] : Symbol(C12['c'], Decl(strictPropertyInitialization.ts, 139, 16)) +>'c' : Symbol(C12['c'], Decl(strictPropertyInitialization.ts, 139, 16)) constructor() { this[a] = 1; @@ -346,7 +346,7 @@ class C12 { this['c'] = 1; >this : Symbol(C12, Decl(strictPropertyInitialization.ts, 135, 19)) ->'c' : Symbol(C12["c"], Decl(strictPropertyInitialization.ts, 139, 16)) +>'c' : Symbol(C12['c'], Decl(strictPropertyInitialization.ts, 139, 16)) } } diff --git a/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.symbols.diff b/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.symbols.diff deleted file mode 100644 index 4433879127..0000000000 --- a/testdata/baselines/reference/submodule/conformance/strictPropertyInitialization.symbols.diff +++ /dev/null @@ -1,21 +0,0 @@ ---- old.strictPropertyInitialization.symbols -+++ new.strictPropertyInitialization.symbols -@@= skipped -331, +331 lines =@@ - >b : Symbol(b, Decl(strictPropertyInitialization.ts, 135, 5)) - - ['c']: number; -->['c'] : Symbol(C12['c'], Decl(strictPropertyInitialization.ts, 139, 16)) -->'c' : Symbol(C12['c'], Decl(strictPropertyInitialization.ts, 139, 16)) -+>['c'] : Symbol(C12["c"], Decl(strictPropertyInitialization.ts, 139, 16)) -+>'c' : Symbol(C12["c"], Decl(strictPropertyInitialization.ts, 139, 16)) - - constructor() { - this[a] = 1; -@@= skipped -14, +14 lines =@@ - - this['c'] = 1; - >this : Symbol(C12, Decl(strictPropertyInitialization.ts, 135, 19)) -->'c' : Symbol(C12['c'], Decl(strictPropertyInitialization.ts, 139, 16)) -+>'c' : Symbol(C12["c"], Decl(strictPropertyInitialization.ts, 139, 16)) - } - } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers.symbols b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers.symbols index 6ad354550a..64ae627151 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers.symbols +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers.symbols @@ -69,11 +69,11 @@ class A3 { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers.ts, 24, 1)) '1': Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers.ts, 26, 10)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers.ts, 26, 10)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers.ts, 0, 0)) '2.0': Base; ->'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers.ts, 27, 14)) +>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers.ts, 27, 14)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers.ts, 0, 0)) } @@ -82,11 +82,11 @@ class B3 extends A3 { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers.ts, 24, 1)) '1': Derived; // ok ->'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers.ts, 31, 21)) +>'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers.ts, 31, 21)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers.ts, 0, 27)) '2.0': string; // error ->'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers.ts, 32, 17)) +>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers.ts, 32, 17)) } module TwoLevels { @@ -144,11 +144,11 @@ module TwoLevels { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers.ts, 55, 5)) '1': Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers.ts, 57, 14)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers.ts, 57, 14)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers.ts, 0, 0)) '2.0': Base; ->'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers.ts, 58, 18)) +>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers.ts, 58, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers.ts, 0, 0)) } @@ -157,10 +157,10 @@ module TwoLevels { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers.ts, 55, 5)) '1': Derived2; // ok ->'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers.ts, 62, 25)) +>'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers.ts, 62, 25)) >Derived2 : Symbol(Derived2, Decl(subtypingWithObjectMembers.ts, 1, 43)) '2.0': string; // error ->'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers.ts, 63, 22)) +>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers.ts, 63, 22)) } } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers.symbols.diff b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers.symbols.diff index 28215cd527..6bd81e1d75 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers.symbols.diff +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers.symbols.diff @@ -1,57 +1,37 @@ --- old.subtypingWithObjectMembers.symbols +++ new.subtypingWithObjectMembers.symbols -@@= skipped -68, +68 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers.ts, 24, 1)) - - '1': Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers.ts, 26, 10)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers.ts, 26, 10)) +@@= skipped -72, +72 lines =@@ >Base : Symbol(Base, Decl(subtypingWithObjectMembers.ts, 0, 0)) '2.0': Base; ->'2.0' : Symbol(A3['2.0'], Decl(subtypingWithObjectMembers.ts, 27, 14)) -+>'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers.ts, 27, 14)) ++>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers.ts, 27, 14)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers.ts, 0, 0)) } @@= skipped -13, +13 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers.ts, 24, 1)) - - '1': Derived; // ok -->'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers.ts, 31, 21)) -+>'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers.ts, 31, 21)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers.ts, 0, 27)) '2.0': string; // error ->'2.0' : Symbol(B3['2.0'], Decl(subtypingWithObjectMembers.ts, 32, 17)) -+>'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers.ts, 32, 17)) ++>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers.ts, 32, 17)) } module TwoLevels { @@= skipped -62, +62 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers.ts, 55, 5)) - - '1': Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers.ts, 57, 14)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers.ts, 57, 14)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers.ts, 0, 0)) '2.0': Base; ->'2.0' : Symbol(A3['2.0'], Decl(subtypingWithObjectMembers.ts, 58, 18)) -+>'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers.ts, 58, 18)) ++>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers.ts, 58, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers.ts, 0, 0)) } @@= skipped -13, +13 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers.ts, 55, 5)) - - '1': Derived2; // ok -->'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers.ts, 62, 25)) -+>'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers.ts, 62, 25)) >Derived2 : Symbol(Derived2, Decl(subtypingWithObjectMembers.ts, 1, 43)) '2.0': string; // error ->'2.0' : Symbol(B3['2.0'], Decl(subtypingWithObjectMembers.ts, 63, 22)) -+>'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers.ts, 63, 22)) ++>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers.ts, 63, 22)) } } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers2.symbols b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers2.symbols index 62bb13f86a..1fa822aa07 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers2.symbols +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers2.symbols @@ -73,11 +73,11 @@ module NotOptional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers2.ts, 29, 5)) '1': Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers2.ts, 31, 18)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers2.ts, 31, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers2.ts, 0, 0)) '2.0': Base; ->'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers2.ts, 32, 18)) +>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers2.ts, 32, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers2.ts, 0, 0)) } @@ -86,11 +86,11 @@ module NotOptional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers2.ts, 29, 5)) '1': Derived; // ok ->'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers2.ts, 36, 29)) +>'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers2.ts, 36, 29)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers2.ts, 2, 1)) '2.0': string; // error ->'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers2.ts, 37, 21)) +>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers2.ts, 37, 21)) } } @@ -150,11 +150,11 @@ module Optional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers2.ts, 62, 5)) '1'?: Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers2.ts, 64, 18)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers2.ts, 64, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers2.ts, 0, 0)) '2.0'?: Base; ->'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers2.ts, 65, 19)) +>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers2.ts, 65, 19)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers2.ts, 0, 0)) } @@ -163,10 +163,10 @@ module Optional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers2.ts, 62, 5)) '1'?: Derived; // ok ->'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers2.ts, 69, 29)) +>'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers2.ts, 69, 29)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers2.ts, 2, 1)) '2.0'?: string; // error ->'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers2.ts, 70, 22)) +>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers2.ts, 70, 22)) } } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers2.symbols.diff b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers2.symbols.diff index 46d2d03e6d..3901f4be97 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers2.symbols.diff +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers2.symbols.diff @@ -1,57 +1,37 @@ --- old.subtypingWithObjectMembers2.symbols +++ new.subtypingWithObjectMembers2.symbols -@@= skipped -72, +72 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers2.ts, 29, 5)) - - '1': Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers2.ts, 31, 18)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers2.ts, 31, 18)) +@@= skipped -76, +76 lines =@@ >Base : Symbol(Base, Decl(subtypingWithObjectMembers2.ts, 0, 0)) '2.0': Base; ->'2.0' : Symbol(A3['2.0'], Decl(subtypingWithObjectMembers2.ts, 32, 18)) -+>'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers2.ts, 32, 18)) ++>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers2.ts, 32, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers2.ts, 0, 0)) } @@= skipped -13, +13 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers2.ts, 29, 5)) - - '1': Derived; // ok -->'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers2.ts, 36, 29)) -+>'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers2.ts, 36, 29)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers2.ts, 2, 1)) '2.0': string; // error ->'2.0' : Symbol(B3['2.0'], Decl(subtypingWithObjectMembers2.ts, 37, 21)) -+>'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers2.ts, 37, 21)) ++>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers2.ts, 37, 21)) } } @@= skipped -64, +64 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers2.ts, 62, 5)) - - '1'?: Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers2.ts, 64, 18)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers2.ts, 64, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers2.ts, 0, 0)) '2.0'?: Base; ->'2.0' : Symbol(A3['2.0'], Decl(subtypingWithObjectMembers2.ts, 65, 19)) -+>'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers2.ts, 65, 19)) ++>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers2.ts, 65, 19)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers2.ts, 0, 0)) } @@= skipped -13, +13 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers2.ts, 62, 5)) - - '1'?: Derived; // ok -->'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers2.ts, 69, 29)) -+>'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers2.ts, 69, 29)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers2.ts, 2, 1)) '2.0'?: string; // error ->'2.0' : Symbol(B3['2.0'], Decl(subtypingWithObjectMembers2.ts, 70, 22)) -+>'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers2.ts, 70, 22)) ++>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers2.ts, 70, 22)) } } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers3.symbols b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers3.symbols index 9189927141..ed7aabf5e6 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers3.symbols +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers3.symbols @@ -75,11 +75,11 @@ module NotOptional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers3.ts, 29, 5)) '1': Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers3.ts, 31, 18)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers3.ts, 31, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers3.ts, 0, 0)) '2.0': Derived; ->'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers3.ts, 32, 18)) +>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers3.ts, 32, 18)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers3.ts, 2, 1)) } @@ -88,11 +88,11 @@ module NotOptional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers3.ts, 29, 5)) '1': Derived; // ok ->'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers3.ts, 36, 29)) +>'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers3.ts, 36, 29)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers3.ts, 2, 1)) '2.0': Base; // error ->'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers3.ts, 37, 21)) +>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers3.ts, 37, 21)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers3.ts, 0, 0)) } } @@ -154,11 +154,11 @@ module Optional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers3.ts, 61, 5)) '1'?: Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers3.ts, 63, 18)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers3.ts, 63, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers3.ts, 0, 0)) '2.0'?: Derived; ->'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers3.ts, 64, 19)) +>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers3.ts, 64, 19)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers3.ts, 2, 1)) } @@ -167,11 +167,11 @@ module Optional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers3.ts, 61, 5)) '1'?: Derived; // ok ->'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers3.ts, 68, 29)) +>'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers3.ts, 68, 29)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers3.ts, 2, 1)) '2.0'?: Base; // error ->'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers3.ts, 69, 22)) +>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers3.ts, 69, 22)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers3.ts, 0, 0)) } } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers3.symbols.diff b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers3.symbols.diff index f0d55a8958..f89cf270d5 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers3.symbols.diff +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers3.symbols.diff @@ -1,58 +1,38 @@ --- old.subtypingWithObjectMembers3.symbols +++ new.subtypingWithObjectMembers3.symbols -@@= skipped -74, +74 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers3.ts, 29, 5)) - - '1': Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers3.ts, 31, 18)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers3.ts, 31, 18)) +@@= skipped -78, +78 lines =@@ >Base : Symbol(Base, Decl(subtypingWithObjectMembers3.ts, 0, 0)) '2.0': Derived; ->'2.0' : Symbol(A3['2.0'], Decl(subtypingWithObjectMembers3.ts, 32, 18)) -+>'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers3.ts, 32, 18)) ++>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers3.ts, 32, 18)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers3.ts, 2, 1)) } @@= skipped -13, +13 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers3.ts, 29, 5)) - - '1': Derived; // ok -->'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers3.ts, 36, 29)) -+>'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers3.ts, 36, 29)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers3.ts, 2, 1)) '2.0': Base; // error ->'2.0' : Symbol(B3['2.0'], Decl(subtypingWithObjectMembers3.ts, 37, 21)) -+>'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers3.ts, 37, 21)) ++>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers3.ts, 37, 21)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers3.ts, 0, 0)) } } @@= skipped -66, +66 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers3.ts, 61, 5)) - - '1'?: Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers3.ts, 63, 18)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers3.ts, 63, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers3.ts, 0, 0)) '2.0'?: Derived; ->'2.0' : Symbol(A3['2.0'], Decl(subtypingWithObjectMembers3.ts, 64, 19)) -+>'2.0' : Symbol(A3["20"], Decl(subtypingWithObjectMembers3.ts, 64, 19)) ++>'2.0' : Symbol(A3['20'], Decl(subtypingWithObjectMembers3.ts, 64, 19)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers3.ts, 2, 1)) } @@= skipped -13, +13 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers3.ts, 61, 5)) - - '1'?: Derived; // ok -->'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembers3.ts, 68, 29)) -+>'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembers3.ts, 68, 29)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers3.ts, 2, 1)) '2.0'?: Base; // error ->'2.0' : Symbol(B3['2.0'], Decl(subtypingWithObjectMembers3.ts, 69, 22)) -+>'2.0' : Symbol(B3["20"], Decl(subtypingWithObjectMembers3.ts, 69, 22)) ++>'2.0' : Symbol(B3['20'], Decl(subtypingWithObjectMembers3.ts, 69, 22)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers3.ts, 0, 0)) } } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers4.symbols b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers4.symbols index f896eeb1d9..82cf38b547 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers4.symbols +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers4.symbols @@ -56,7 +56,7 @@ class A3 { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers4.ts, 24, 1)) '1': Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers4.ts, 26, 10)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers4.ts, 26, 10)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers4.ts, 0, 0)) } @@ -65,6 +65,6 @@ class B3 extends A3 { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers4.ts, 24, 1)) '1.1': Derived; // ok, inherits '1' ->'1.1' : Symbol(B3["11"], Decl(subtypingWithObjectMembers4.ts, 30, 21)) +>'1.1' : Symbol(B3['11'], Decl(subtypingWithObjectMembers4.ts, 30, 21)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers4.ts, 4, 1)) } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers4.symbols.diff b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers4.symbols.diff index a40acb8840..c41562c807 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers4.symbols.diff +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers4.symbols.diff @@ -1,19 +1,10 @@ --- old.subtypingWithObjectMembers4.symbols +++ new.subtypingWithObjectMembers4.symbols -@@= skipped -55, +55 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers4.ts, 24, 1)) - - '1': Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers4.ts, 26, 10)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers4.ts, 26, 10)) - >Base : Symbol(Base, Decl(subtypingWithObjectMembers4.ts, 0, 0)) - } - -@@= skipped -9, +9 lines =@@ +@@= skipped -64, +64 lines =@@ >A3 : Symbol(A3, Decl(subtypingWithObjectMembers4.ts, 24, 1)) '1.1': Derived; // ok, inherits '1' ->'1.1' : Symbol(B3['1.1'], Decl(subtypingWithObjectMembers4.ts, 30, 21)) -+>'1.1' : Symbol(B3["11"], Decl(subtypingWithObjectMembers4.ts, 30, 21)) ++>'1.1' : Symbol(B3['11'], Decl(subtypingWithObjectMembers4.ts, 30, 21)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers4.ts, 4, 1)) } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers5.symbols b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers5.symbols index e05eec4fe6..2e46db6153 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers5.symbols +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers5.symbols @@ -59,7 +59,7 @@ module NotOptional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers5.ts, 25, 5)) '1': Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers5.ts, 27, 18)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers5.ts, 27, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers5.ts, 0, 0)) } @@ -68,7 +68,7 @@ module NotOptional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers5.ts, 25, 5)) '1.0': Derived; // error ->'1.0' : Symbol(B3["10"], Decl(subtypingWithObjectMembers5.ts, 31, 28)) +>'1.0' : Symbol(B3['10'], Decl(subtypingWithObjectMembers5.ts, 31, 28)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers5.ts, 2, 1)) } } @@ -115,7 +115,7 @@ module Optional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers5.ts, 52, 5)) '1'?: Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers5.ts, 54, 18)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers5.ts, 54, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembers5.ts, 0, 0)) } @@ -124,7 +124,7 @@ module Optional { >A3 : Symbol(A3, Decl(subtypingWithObjectMembers5.ts, 52, 5)) '1.0': Derived; // weak type error ->'1.0' : Symbol(B3["10"], Decl(subtypingWithObjectMembers5.ts, 58, 28)) +>'1.0' : Symbol(B3['10'], Decl(subtypingWithObjectMembers5.ts, 58, 28)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers5.ts, 2, 1)) } } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers5.symbols.diff b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers5.symbols.diff index a68ce4c689..98c8aa5971 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers5.symbols.diff +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembers5.symbols.diff @@ -1,38 +1,20 @@ --- old.subtypingWithObjectMembers5.symbols +++ new.subtypingWithObjectMembers5.symbols -@@= skipped -58, +58 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers5.ts, 25, 5)) - - '1': Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers5.ts, 27, 18)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers5.ts, 27, 18)) - >Base : Symbol(Base, Decl(subtypingWithObjectMembers5.ts, 0, 0)) - } - -@@= skipped -9, +9 lines =@@ +@@= skipped -67, +67 lines =@@ >A3 : Symbol(A3, Decl(subtypingWithObjectMembers5.ts, 25, 5)) '1.0': Derived; // error ->'1.0' : Symbol(B3['1.0'], Decl(subtypingWithObjectMembers5.ts, 31, 28)) -+>'1.0' : Symbol(B3["10"], Decl(subtypingWithObjectMembers5.ts, 31, 28)) ++>'1.0' : Symbol(B3['10'], Decl(subtypingWithObjectMembers5.ts, 31, 28)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers5.ts, 2, 1)) } } -@@= skipped -47, +47 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembers5.ts, 52, 5)) - - '1'?: Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembers5.ts, 54, 18)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembers5.ts, 54, 18)) - >Base : Symbol(Base, Decl(subtypingWithObjectMembers5.ts, 0, 0)) - } - -@@= skipped -9, +9 lines =@@ +@@= skipped -56, +56 lines =@@ >A3 : Symbol(A3, Decl(subtypingWithObjectMembers5.ts, 52, 5)) '1.0': Derived; // weak type error ->'1.0' : Symbol(B3['1.0'], Decl(subtypingWithObjectMembers5.ts, 58, 28)) -+>'1.0' : Symbol(B3["10"], Decl(subtypingWithObjectMembers5.ts, 58, 28)) ++>'1.0' : Symbol(B3['10'], Decl(subtypingWithObjectMembers5.ts, 58, 28)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembers5.ts, 2, 1)) } } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility.symbols b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility.symbols index 4954c50da6..1d6b0f0518 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility.symbols +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility.symbols @@ -56,7 +56,7 @@ class A3 { >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility.ts, 24, 1)) public '1': Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembersAccessibility.ts, 26, 10)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembersAccessibility.ts, 26, 10)) >Base : Symbol(Base, Decl(subtypingWithObjectMembersAccessibility.ts, 0, 0)) } @@ -65,6 +65,6 @@ class B3 extends A3 { >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility.ts, 24, 1)) private '1': Derived; // error ->'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembersAccessibility.ts, 30, 21)) +>'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembersAccessibility.ts, 30, 21)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersAccessibility.ts, 4, 1)) } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility.symbols.diff b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility.symbols.diff deleted file mode 100644 index 2b542df557..0000000000 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility.symbols.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.subtypingWithObjectMembersAccessibility.symbols -+++ new.subtypingWithObjectMembersAccessibility.symbols -@@= skipped -55, +55 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility.ts, 24, 1)) - - public '1': Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembersAccessibility.ts, 26, 10)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembersAccessibility.ts, 26, 10)) - >Base : Symbol(Base, Decl(subtypingWithObjectMembersAccessibility.ts, 0, 0)) - } - -@@= skipped -9, +9 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility.ts, 24, 1)) - - private '1': Derived; // error -->'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembersAccessibility.ts, 30, 21)) -+>'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembersAccessibility.ts, 30, 21)) - >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersAccessibility.ts, 4, 1)) - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility2.symbols b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility2.symbols index 2e2f46d2d8..a4e2535a9d 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility2.symbols +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility2.symbols @@ -59,7 +59,7 @@ module ExplicitPublic { >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility2.ts, 25, 5)) private '1': Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembersAccessibility2.ts, 27, 14)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembersAccessibility2.ts, 27, 14)) >Base : Symbol(Base, Decl(subtypingWithObjectMembersAccessibility2.ts, 0, 0)) } @@ -68,7 +68,7 @@ module ExplicitPublic { >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility2.ts, 25, 5)) public '1': Derived; // error ->'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembersAccessibility2.ts, 31, 25)) +>'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembersAccessibility2.ts, 31, 25)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersAccessibility2.ts, 4, 1)) } } @@ -114,7 +114,7 @@ module ImplicitPublic { >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility2.ts, 51, 5)) private '1': Base; ->'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembersAccessibility2.ts, 53, 14)) +>'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembersAccessibility2.ts, 53, 14)) >Base : Symbol(Base, Decl(subtypingWithObjectMembersAccessibility2.ts, 0, 0)) } @@ -123,7 +123,7 @@ module ImplicitPublic { >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility2.ts, 51, 5)) '1': Derived; // error ->'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembersAccessibility2.ts, 57, 25)) +>'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembersAccessibility2.ts, 57, 25)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersAccessibility2.ts, 4, 1)) } } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility2.symbols.diff b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility2.symbols.diff deleted file mode 100644 index c80c20ae4a..0000000000 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersAccessibility2.symbols.diff +++ /dev/null @@ -1,38 +0,0 @@ ---- old.subtypingWithObjectMembersAccessibility2.symbols -+++ new.subtypingWithObjectMembersAccessibility2.symbols -@@= skipped -58, +58 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility2.ts, 25, 5)) - - private '1': Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembersAccessibility2.ts, 27, 14)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembersAccessibility2.ts, 27, 14)) - >Base : Symbol(Base, Decl(subtypingWithObjectMembersAccessibility2.ts, 0, 0)) - } - -@@= skipped -9, +9 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility2.ts, 25, 5)) - - public '1': Derived; // error -->'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembersAccessibility2.ts, 31, 25)) -+>'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembersAccessibility2.ts, 31, 25)) - >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersAccessibility2.ts, 4, 1)) - } - } -@@= skipped -46, +46 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility2.ts, 51, 5)) - - private '1': Base; -->'1' : Symbol(A3['1'], Decl(subtypingWithObjectMembersAccessibility2.ts, 53, 14)) -+>'1' : Symbol(A3["1"], Decl(subtypingWithObjectMembersAccessibility2.ts, 53, 14)) - >Base : Symbol(Base, Decl(subtypingWithObjectMembersAccessibility2.ts, 0, 0)) - } - -@@= skipped -9, +9 lines =@@ - >A3 : Symbol(A3, Decl(subtypingWithObjectMembersAccessibility2.ts, 51, 5)) - - '1': Derived; // error -->'1' : Symbol(B3['1'], Decl(subtypingWithObjectMembersAccessibility2.ts, 57, 25)) -+>'1' : Symbol(B3["1"], Decl(subtypingWithObjectMembersAccessibility2.ts, 57, 25)) - >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersAccessibility2.ts, 4, 1)) - } - } \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality.symbols b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality.symbols index 07d403d5a2..59bfe8da7e 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality.symbols +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality.symbols @@ -63,7 +63,7 @@ interface T3 { >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality.ts, 28, 1)) '1'?: Base; ->'1' : Symbol(T3["1"], Decl(subtypingWithObjectMembersOptionality.ts, 30, 14)) +>'1' : Symbol(T3['1'], Decl(subtypingWithObjectMembersOptionality.ts, 30, 14)) >Base : Symbol(Base, Decl(subtypingWithObjectMembersOptionality.ts, 0, 0)) } @@ -72,7 +72,7 @@ interface S3 extends T3 { >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality.ts, 28, 1)) '1.': Derived; ->'1.' : Symbol(S3["1"], Decl(subtypingWithObjectMembersOptionality.ts, 34, 25)) +>'1.' : Symbol(S3['1'], Decl(subtypingWithObjectMembersOptionality.ts, 34, 25)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersOptionality.ts, 2, 31)) } @@ -133,7 +133,7 @@ module TwoLevels { >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality.ts, 58, 5)) '1'?: Base; ->'1' : Symbol(T3["1"], Decl(subtypingWithObjectMembersOptionality.ts, 60, 18)) +>'1' : Symbol(T3['1'], Decl(subtypingWithObjectMembersOptionality.ts, 60, 18)) >Base : Symbol(Base, Decl(subtypingWithObjectMembersOptionality.ts, 0, 0)) } @@ -142,7 +142,7 @@ module TwoLevels { >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality.ts, 58, 5)) '1.': Derived2; ->'1.' : Symbol(S3["1"], Decl(subtypingWithObjectMembersOptionality.ts, 64, 29)) +>'1.' : Symbol(S3['1'], Decl(subtypingWithObjectMembersOptionality.ts, 64, 29)) >Derived2 : Symbol(Derived2, Decl(subtypingWithObjectMembersOptionality.ts, 3, 47)) } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality.symbols.diff b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality.symbols.diff index 1d851c41b9..e148acee6f 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality.symbols.diff +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality.symbols.diff @@ -1,37 +1,19 @@ --- old.subtypingWithObjectMembersOptionality.symbols +++ new.subtypingWithObjectMembersOptionality.symbols -@@= skipped -62, +62 lines =@@ - >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality.ts, 28, 1)) - - '1'?: Base; -->'1' : Symbol(T3['1'], Decl(subtypingWithObjectMembersOptionality.ts, 30, 14)) -+>'1' : Symbol(T3["1"], Decl(subtypingWithObjectMembersOptionality.ts, 30, 14)) - >Base : Symbol(Base, Decl(subtypingWithObjectMembersOptionality.ts, 0, 0)) - } - -@@= skipped -9, +9 lines =@@ +@@= skipped -71, +71 lines =@@ >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality.ts, 28, 1)) '1.': Derived; ->'1.' : Symbol(S3['1.'], Decl(subtypingWithObjectMembersOptionality.ts, 34, 25)) -+>'1.' : Symbol(S3["1"], Decl(subtypingWithObjectMembersOptionality.ts, 34, 25)) ++>'1.' : Symbol(S3['1'], Decl(subtypingWithObjectMembersOptionality.ts, 34, 25)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersOptionality.ts, 2, 31)) } -@@= skipped -61, +61 lines =@@ - >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality.ts, 58, 5)) - - '1'?: Base; -->'1' : Symbol(T3['1'], Decl(subtypingWithObjectMembersOptionality.ts, 60, 18)) -+>'1' : Symbol(T3["1"], Decl(subtypingWithObjectMembersOptionality.ts, 60, 18)) - >Base : Symbol(Base, Decl(subtypingWithObjectMembersOptionality.ts, 0, 0)) - } - -@@= skipped -9, +9 lines =@@ +@@= skipped -70, +70 lines =@@ >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality.ts, 58, 5)) '1.': Derived2; ->'1.' : Symbol(S3['1.'], Decl(subtypingWithObjectMembersOptionality.ts, 64, 29)) -+>'1.' : Symbol(S3["1"], Decl(subtypingWithObjectMembersOptionality.ts, 64, 29)) ++>'1.' : Symbol(S3['1'], Decl(subtypingWithObjectMembersOptionality.ts, 64, 29)) >Derived2 : Symbol(Derived2, Decl(subtypingWithObjectMembersOptionality.ts, 3, 47)) } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality2.symbols b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality2.symbols index 1696fc1963..9d2c1380eb 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality2.symbols +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality2.symbols @@ -50,7 +50,7 @@ interface T3 { >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality2.ts, 19, 1)) '1': Base; ->'1' : Symbol(T3["1"], Decl(subtypingWithObjectMembersOptionality2.ts, 21, 14)) +>'1' : Symbol(T3['1'], Decl(subtypingWithObjectMembersOptionality2.ts, 21, 14)) >Base : Symbol(Base, Decl(subtypingWithObjectMembersOptionality2.ts, 0, 0)) } @@ -59,7 +59,7 @@ interface S3 extends T3 { >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality2.ts, 19, 1)) '1'?: Derived; // error ->'1' : Symbol(S3["1"], Decl(subtypingWithObjectMembersOptionality2.ts, 25, 25)) +>'1' : Symbol(S3['1'], Decl(subtypingWithObjectMembersOptionality2.ts, 25, 25)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersOptionality2.ts, 2, 31)) } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality2.symbols.diff b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality2.symbols.diff deleted file mode 100644 index 752c4088b5..0000000000 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality2.symbols.diff +++ /dev/null @@ -1,19 +0,0 @@ ---- old.subtypingWithObjectMembersOptionality2.symbols -+++ new.subtypingWithObjectMembersOptionality2.symbols -@@= skipped -49, +49 lines =@@ - >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality2.ts, 19, 1)) - - '1': Base; -->'1' : Symbol(T3['1'], Decl(subtypingWithObjectMembersOptionality2.ts, 21, 14)) -+>'1' : Symbol(T3["1"], Decl(subtypingWithObjectMembersOptionality2.ts, 21, 14)) - >Base : Symbol(Base, Decl(subtypingWithObjectMembersOptionality2.ts, 0, 0)) - } - -@@= skipped -9, +9 lines =@@ - >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality2.ts, 19, 1)) - - '1'?: Derived; // error -->'1' : Symbol(S3['1'], Decl(subtypingWithObjectMembersOptionality2.ts, 25, 25)) -+>'1' : Symbol(S3["1"], Decl(subtypingWithObjectMembersOptionality2.ts, 25, 25)) - >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersOptionality2.ts, 2, 31)) - } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality3.symbols b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality3.symbols index 63b12b618d..e1a60f8bf4 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality3.symbols +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality3.symbols @@ -50,7 +50,7 @@ interface T3 { >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality3.ts, 19, 1)) '1'?: Base; ->'1' : Symbol(T3["1"], Decl(subtypingWithObjectMembersOptionality3.ts, 21, 14)) +>'1' : Symbol(T3['1'], Decl(subtypingWithObjectMembersOptionality3.ts, 21, 14)) >Base : Symbol(Base, Decl(subtypingWithObjectMembersOptionality3.ts, 0, 0)) } @@ -59,7 +59,7 @@ interface S3 extends T3 { >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality3.ts, 19, 1)) '1.0': Derived; // ok ->'1.0' : Symbol(S3["10"], Decl(subtypingWithObjectMembersOptionality3.ts, 25, 25)) +>'1.0' : Symbol(S3['10'], Decl(subtypingWithObjectMembersOptionality3.ts, 25, 25)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersOptionality3.ts, 2, 31)) } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality3.symbols.diff b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality3.symbols.diff index c9d1e12976..b2394605f1 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality3.symbols.diff +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality3.symbols.diff @@ -1,19 +1,10 @@ --- old.subtypingWithObjectMembersOptionality3.symbols +++ new.subtypingWithObjectMembersOptionality3.symbols -@@= skipped -49, +49 lines =@@ - >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality3.ts, 19, 1)) - - '1'?: Base; -->'1' : Symbol(T3['1'], Decl(subtypingWithObjectMembersOptionality3.ts, 21, 14)) -+>'1' : Symbol(T3["1"], Decl(subtypingWithObjectMembersOptionality3.ts, 21, 14)) - >Base : Symbol(Base, Decl(subtypingWithObjectMembersOptionality3.ts, 0, 0)) - } - -@@= skipped -9, +9 lines =@@ +@@= skipped -58, +58 lines =@@ >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality3.ts, 19, 1)) '1.0': Derived; // ok ->'1.0' : Symbol(S3['1.0'], Decl(subtypingWithObjectMembersOptionality3.ts, 25, 25)) -+>'1.0' : Symbol(S3["10"], Decl(subtypingWithObjectMembersOptionality3.ts, 25, 25)) ++>'1.0' : Symbol(S3['10'], Decl(subtypingWithObjectMembersOptionality3.ts, 25, 25)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersOptionality3.ts, 2, 31)) } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality4.symbols b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality4.symbols index 87fc115ab6..cc6d4c8fb0 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality4.symbols +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality4.symbols @@ -50,7 +50,7 @@ interface T3 { >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality4.ts, 19, 1)) '1': Base; ->'1' : Symbol(T3["1"], Decl(subtypingWithObjectMembersOptionality4.ts, 21, 14)) +>'1' : Symbol(T3['1'], Decl(subtypingWithObjectMembersOptionality4.ts, 21, 14)) >Base : Symbol(Base, Decl(subtypingWithObjectMembersOptionality4.ts, 0, 0)) } @@ -59,7 +59,7 @@ interface S3 extends T3 { >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality4.ts, 19, 1)) '1.0'?: Derived; // ok ->'1.0' : Symbol(S3["10"], Decl(subtypingWithObjectMembersOptionality4.ts, 25, 25)) +>'1.0' : Symbol(S3['10'], Decl(subtypingWithObjectMembersOptionality4.ts, 25, 25)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersOptionality4.ts, 2, 31)) } diff --git a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality4.symbols.diff b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality4.symbols.diff index 8c1261ba65..e1fd325c1b 100644 --- a/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality4.symbols.diff +++ b/testdata/baselines/reference/submodule/conformance/subtypingWithObjectMembersOptionality4.symbols.diff @@ -1,19 +1,10 @@ --- old.subtypingWithObjectMembersOptionality4.symbols +++ new.subtypingWithObjectMembersOptionality4.symbols -@@= skipped -49, +49 lines =@@ - >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality4.ts, 19, 1)) - - '1': Base; -->'1' : Symbol(T3['1'], Decl(subtypingWithObjectMembersOptionality4.ts, 21, 14)) -+>'1' : Symbol(T3["1"], Decl(subtypingWithObjectMembersOptionality4.ts, 21, 14)) - >Base : Symbol(Base, Decl(subtypingWithObjectMembersOptionality4.ts, 0, 0)) - } - -@@= skipped -9, +9 lines =@@ +@@= skipped -58, +58 lines =@@ >T3 : Symbol(T3, Decl(subtypingWithObjectMembersOptionality4.ts, 19, 1)) '1.0'?: Derived; // ok ->'1.0' : Symbol(S3['1.0'], Decl(subtypingWithObjectMembersOptionality4.ts, 25, 25)) -+>'1.0' : Symbol(S3["10"], Decl(subtypingWithObjectMembersOptionality4.ts, 25, 25)) ++>'1.0' : Symbol(S3['10'], Decl(subtypingWithObjectMembersOptionality4.ts, 25, 25)) >Derived : Symbol(Derived, Decl(subtypingWithObjectMembersOptionality4.ts, 2, 31)) } diff --git a/testdata/baselines/reference/submodule/conformance/tsxElementResolution.symbols b/testdata/baselines/reference/submodule/conformance/tsxElementResolution.symbols index d429f7020d..ddb634d923 100644 --- a/testdata/baselines/reference/submodule/conformance/tsxElementResolution.symbols +++ b/testdata/baselines/reference/submodule/conformance/tsxElementResolution.symbols @@ -12,10 +12,10 @@ declare namespace JSX { >x : Symbol(x, Decl(tsxElementResolution.tsx, 2, 15)) 'string_named'; ->'string_named' : Symbol(IntrinsicElements["string_named"], Decl(tsxElementResolution.tsx, 2, 28)) +>'string_named' : Symbol(IntrinsicElements['string_named'], Decl(tsxElementResolution.tsx, 2, 28)) 'var'; ->'var' : Symbol(IntrinsicElements["var"], Decl(tsxElementResolution.tsx, 3, 17)) +>'var' : Symbol(IntrinsicElements['var'], Decl(tsxElementResolution.tsx, 3, 17)) } } @@ -40,7 +40,7 @@ var a = ; var b = ; >b : Symbol(b, Decl(tsxElementResolution.tsx, 17, 3)) ->string_named : Symbol(JSX.IntrinsicElements["string_named"], Decl(tsxElementResolution.tsx, 2, 28)) +>string_named : Symbol(JSX.IntrinsicElements['string_named'], Decl(tsxElementResolution.tsx, 2, 28)) // TODO: This should not be a parse error (should // parse a property name here, not identifier) diff --git a/testdata/baselines/reference/submodule/conformance/tsxElementResolution.symbols.diff b/testdata/baselines/reference/submodule/conformance/tsxElementResolution.symbols.diff deleted file mode 100644 index c6eb1f416e..0000000000 --- a/testdata/baselines/reference/submodule/conformance/tsxElementResolution.symbols.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.tsxElementResolution.symbols -+++ new.tsxElementResolution.symbols -@@= skipped -11, +11 lines =@@ - >x : Symbol(x, Decl(tsxElementResolution.tsx, 2, 15)) - - 'string_named'; -->'string_named' : Symbol(IntrinsicElements['string_named'], Decl(tsxElementResolution.tsx, 2, 28)) -+>'string_named' : Symbol(IntrinsicElements["string_named"], Decl(tsxElementResolution.tsx, 2, 28)) - - 'var'; -->'var' : Symbol(IntrinsicElements['var'], Decl(tsxElementResolution.tsx, 3, 17)) -+>'var' : Symbol(IntrinsicElements["var"], Decl(tsxElementResolution.tsx, 3, 17)) - } - } - -@@= skipped -28, +28 lines =@@ - - var b = ; - >b : Symbol(b, Decl(tsxElementResolution.tsx, 17, 3)) -->string_named : Symbol(JSX.IntrinsicElements['string_named'], Decl(tsxElementResolution.tsx, 2, 28)) -+>string_named : Symbol(JSX.IntrinsicElements["string_named"], Decl(tsxElementResolution.tsx, 2, 28)) - - // TODO: This should not be a parse error (should - // parse a property name here, not identifier) \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/typeofThis.symbols b/testdata/baselines/reference/submodule/conformance/typeofThis.symbols index 452292475c..cbc3fb99db 100644 --- a/testdata/baselines/reference/submodule/conformance/typeofThis.symbols +++ b/testdata/baselines/reference/submodule/conformance/typeofThis.symbols @@ -24,8 +24,8 @@ class Test1 { >foo : Symbol(foo, Decl(typeofThis.ts, 8, 12)) ['this'] = ''; ->['this'] : Symbol(Test1["this"], Decl(typeofThis.ts, 8, 23)) ->'this' : Symbol(Test1["this"], Decl(typeofThis.ts, 8, 23)) +>['this'] : Symbol(Test1['this'], Decl(typeofThis.ts, 8, 23)) +>'this' : Symbol(Test1['this'], Decl(typeofThis.ts, 8, 23)) constructor() { var copy: typeof this.data = { foo: '' }; @@ -55,9 +55,9 @@ class Test1 { var str: typeof this.this = ''; >str : Symbol(str, Decl(typeofThis.ts, 17, 11)) ->this.this : Symbol(Test1["this"], Decl(typeofThis.ts, 8, 23)) +>this.this : Symbol(Test1['this'], Decl(typeofThis.ts, 8, 23)) >this : Symbol(Test1, Decl(typeofThis.ts, 5, 1)) ->this : Symbol(Test1["this"], Decl(typeofThis.ts, 8, 23)) +>this : Symbol(Test1['this'], Decl(typeofThis.ts, 8, 23)) } } diff --git a/testdata/baselines/reference/submodule/conformance/typeofThis.symbols.diff b/testdata/baselines/reference/submodule/conformance/typeofThis.symbols.diff deleted file mode 100644 index 04488de585..0000000000 --- a/testdata/baselines/reference/submodule/conformance/typeofThis.symbols.diff +++ /dev/null @@ -1,24 +0,0 @@ ---- old.typeofThis.symbols -+++ new.typeofThis.symbols -@@= skipped -23, +23 lines =@@ - >foo : Symbol(foo, Decl(typeofThis.ts, 8, 12)) - - ['this'] = ''; -->['this'] : Symbol(Test1['this'], Decl(typeofThis.ts, 8, 23)) -->'this' : Symbol(Test1['this'], Decl(typeofThis.ts, 8, 23)) -+>['this'] : Symbol(Test1["this"], Decl(typeofThis.ts, 8, 23)) -+>'this' : Symbol(Test1["this"], Decl(typeofThis.ts, 8, 23)) - - constructor() { - var copy: typeof this.data = { foo: '' }; -@@= skipped -31, +31 lines =@@ - - var str: typeof this.this = ''; - >str : Symbol(str, Decl(typeofThis.ts, 17, 11)) -->this.this : Symbol(Test1['this'], Decl(typeofThis.ts, 8, 23)) -+>this.this : Symbol(Test1["this"], Decl(typeofThis.ts, 8, 23)) - >this : Symbol(Test1, Decl(typeofThis.ts, 5, 1)) -->this : Symbol(Test1['this'], Decl(typeofThis.ts, 8, 23)) -+>this : Symbol(Test1["this"], Decl(typeofThis.ts, 8, 23)) - } - } diff --git a/testdata/baselines/reference/submodule/conformance/unionAndIntersectionInference1.symbols b/testdata/baselines/reference/submodule/conformance/unionAndIntersectionInference1.symbols index 9e696eeff5..0b634a7973 100644 --- a/testdata/baselines/reference/submodule/conformance/unionAndIntersectionInference1.symbols +++ b/testdata/baselines/reference/submodule/conformance/unionAndIntersectionInference1.symbols @@ -5,7 +5,7 @@ interface Y { 'i am a very certain type': Y } >Y : Symbol(Y, Decl(unionAndIntersectionInference1.ts, 0, 0)) ->'i am a very certain type' : Symbol(Y["i am a very certain type"], Decl(unionAndIntersectionInference1.ts, 2, 13)) +>'i am a very certain type' : Symbol(Y['i am a very certain type'], Decl(unionAndIntersectionInference1.ts, 2, 13)) >Y : Symbol(Y, Decl(unionAndIntersectionInference1.ts, 0, 0)) var y: Y = undefined; diff --git a/testdata/baselines/reference/submodule/conformance/unionAndIntersectionInference1.symbols.diff b/testdata/baselines/reference/submodule/conformance/unionAndIntersectionInference1.symbols.diff deleted file mode 100644 index a7ebfafc85..0000000000 --- a/testdata/baselines/reference/submodule/conformance/unionAndIntersectionInference1.symbols.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- old.unionAndIntersectionInference1.symbols -+++ new.unionAndIntersectionInference1.symbols -@@= skipped -4, +4 lines =@@ - - interface Y { 'i am a very certain type': Y } - >Y : Symbol(Y, Decl(unionAndIntersectionInference1.ts, 0, 0)) -->'i am a very certain type' : Symbol(Y['i am a very certain type'], Decl(unionAndIntersectionInference1.ts, 2, 13)) -+>'i am a very certain type' : Symbol(Y["i am a very certain type"], Decl(unionAndIntersectionInference1.ts, 2, 13)) - >Y : Symbol(Y, Decl(unionAndIntersectionInference1.ts, 0, 0)) - - var y: Y = undefined; \ No newline at end of file From bf0cda497508dde482b4333f22c909706b035d9d Mon Sep 17 00:00:00 2001 From: Gabriela Araujo Britto Date: Thu, 11 Dec 2025 01:21:26 +0000 Subject: [PATCH 3/5] incorporate jsx fix --- internal/transformers/jsxtransforms/jsx.go | 2 +- .../jsxMultilineAttributeValuesReact.js | 4 +-- .../jsxMultilineAttributeValuesReact.js.diff | 10 ------- .../submodule/conformance/tsxReactEmit1.js | 18 ++++++------ .../conformance/tsxReactEmit1.js.diff | 28 ------------------- .../submodule/conformance/tsxReactEmit5.js | 2 +- .../conformance/tsxReactEmit5.js.diff | 8 ------ .../submodule/conformance/tsxReactEmit6.js | 2 +- .../conformance/tsxReactEmit6.js.diff | 2 +- .../conformance/tsxReactEmitEntities.js | 2 +- .../conformance/tsxReactEmitEntities.js.diff | 10 ------- 11 files changed, 16 insertions(+), 72 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/tsxReactEmit1.js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/tsxReactEmit5.js.diff delete mode 100644 testdata/baselines/reference/submodule/conformance/tsxReactEmitEntities.js.diff diff --git a/internal/transformers/jsxtransforms/jsx.go b/internal/transformers/jsxtransforms/jsx.go index 60f168da22..0bf1528e9a 100644 --- a/internal/transformers/jsxtransforms/jsx.go +++ b/internal/transformers/jsxtransforms/jsx.go @@ -535,7 +535,7 @@ func (tx *JSXTransformer) transformJsxAttributeInitializer(node *ast.Node) *ast. if node.Kind == ast.KindStringLiteral { // Always recreate the literal to escape any escape sequences or newlines which may be in the original jsx string and which // Need to be escaped to be handled correctly in a normal string - res := tx.Factory().NewStringLiteral(decodeEntities(node.Text()), ast.TokenFlagsNone) + res := tx.Factory().NewStringLiteral(decodeEntities(node.Text()), node.AsStringLiteral().TokenFlags) res.Loc = node.Loc return res } diff --git a/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js b/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js index 50a07fba47..faea191ed2 100644 --- a/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js +++ b/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js @@ -15,5 +15,5 @@ foo: 23\n //// [jsxMultilineAttributeValuesReact.js] const a = React.createElement("input", { value: "\nfoo: 23\n" }); -const b = React.createElement("input", { value: "\nfoo: 23\n" }); -const c = React.createElement("input", { value: "\nfoo: 23\\n\n" }); +const b = React.createElement("input", { value: '\nfoo: 23\n' }); +const c = React.createElement("input", { value: '\nfoo: 23\\n\n' }); diff --git a/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js.diff b/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js.diff deleted file mode 100644 index 83e9614ba0..0000000000 --- a/testdata/baselines/reference/submodule/compiler/jsxMultilineAttributeValuesReact.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.jsxMultilineAttributeValuesReact.js -+++ new.jsxMultilineAttributeValuesReact.js -@@= skipped -14, +14 lines =@@ - - //// [jsxMultilineAttributeValuesReact.js] - const a = React.createElement("input", { value: "\nfoo: 23\n" }); --const b = React.createElement("input", { value: '\nfoo: 23\n' }); --const c = React.createElement("input", { value: '\nfoo: 23\\n\n' }); -+const b = React.createElement("input", { value: "\nfoo: 23\n" }); -+const c = React.createElement("input", { value: "\nfoo: 23\\n\n" }); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/tsxReactEmit1.js b/testdata/baselines/reference/submodule/conformance/tsxReactEmit1.js index b4f814f105..7c166c86a6 100644 --- a/testdata/baselines/reference/submodule/conformance/tsxReactEmit1.js +++ b/testdata/baselines/reference/submodule/conformance/tsxReactEmit1.js @@ -47,16 +47,16 @@ var whitespace3 =
var p; var selfClosed1 = React.createElement("div", null); var selfClosed2 = React.createElement("div", { x: "1" }); -var selfClosed3 = React.createElement("div", { x: "1" }); -var selfClosed4 = React.createElement("div", { x: "1", y: "0" }); -var selfClosed5 = React.createElement("div", { x: 0, y: "0" }); -var selfClosed6 = React.createElement("div", { x: "1", y: "0" }); -var selfClosed7 = React.createElement("div", { x: p, y: "p", b: true }); +var selfClosed3 = React.createElement("div", { x: '1' }); +var selfClosed4 = React.createElement("div", { x: "1", y: '0' }); +var selfClosed5 = React.createElement("div", { x: 0, y: '0' }); +var selfClosed6 = React.createElement("div", { x: "1", y: '0' }); +var selfClosed7 = React.createElement("div", { x: p, y: 'p', b: true }); var openClosed1 = React.createElement("div", null); -var openClosed2 = React.createElement("div", { n: "m" }, "foo"); -var openClosed3 = React.createElement("div", { n: "m" }, p); -var openClosed4 = React.createElement("div", { n: "m" }, p < p); -var openClosed5 = React.createElement("div", { n: "m", b: true }, p > p); +var openClosed2 = React.createElement("div", { n: 'm' }, "foo"); +var openClosed3 = React.createElement("div", { n: 'm' }, p); +var openClosed4 = React.createElement("div", { n: 'm' }, p < p); +var openClosed5 = React.createElement("div", { n: 'm', b: true }, p > p); class SomeClass { f() { var rewrites1 = React.createElement("div", null, () => this); diff --git a/testdata/baselines/reference/submodule/conformance/tsxReactEmit1.js.diff b/testdata/baselines/reference/submodule/conformance/tsxReactEmit1.js.diff deleted file mode 100644 index 7829beffb5..0000000000 --- a/testdata/baselines/reference/submodule/conformance/tsxReactEmit1.js.diff +++ /dev/null @@ -1,28 +0,0 @@ ---- old.tsxReactEmit1.js -+++ new.tsxReactEmit1.js -@@= skipped -46, +46 lines =@@ - var p; - var selfClosed1 = React.createElement("div", null); - var selfClosed2 = React.createElement("div", { x: "1" }); --var selfClosed3 = React.createElement("div", { x: '1' }); --var selfClosed4 = React.createElement("div", { x: "1", y: '0' }); --var selfClosed5 = React.createElement("div", { x: 0, y: '0' }); --var selfClosed6 = React.createElement("div", { x: "1", y: '0' }); --var selfClosed7 = React.createElement("div", { x: p, y: 'p', b: true }); -+var selfClosed3 = React.createElement("div", { x: "1" }); -+var selfClosed4 = React.createElement("div", { x: "1", y: "0" }); -+var selfClosed5 = React.createElement("div", { x: 0, y: "0" }); -+var selfClosed6 = React.createElement("div", { x: "1", y: "0" }); -+var selfClosed7 = React.createElement("div", { x: p, y: "p", b: true }); - var openClosed1 = React.createElement("div", null); --var openClosed2 = React.createElement("div", { n: 'm' }, "foo"); --var openClosed3 = React.createElement("div", { n: 'm' }, p); --var openClosed4 = React.createElement("div", { n: 'm' }, p < p); --var openClosed5 = React.createElement("div", { n: 'm', b: true }, p > p); -+var openClosed2 = React.createElement("div", { n: "m" }, "foo"); -+var openClosed3 = React.createElement("div", { n: "m" }, p); -+var openClosed4 = React.createElement("div", { n: "m" }, p < p); -+var openClosed5 = React.createElement("div", { n: "m", b: true }, p > p); - class SomeClass { - f() { - var rewrites1 = React.createElement("div", null, () => this); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/tsxReactEmit5.js b/testdata/baselines/reference/submodule/conformance/tsxReactEmit5.js index 4f5cd5df5d..aa852e7fcd 100644 --- a/testdata/baselines/reference/submodule/conformance/tsxReactEmit5.js +++ b/testdata/baselines/reference/submodule/conformance/tsxReactEmit5.js @@ -27,4 +27,4 @@ const test_1 = require("./test"); // Should emit test_1.React.createElement // and React.__spread var foo; -var spread1 = test_1.React.createElement("div", Object.assign({ x: "" }, foo, { y: "" })); +var spread1 = test_1.React.createElement("div", Object.assign({ x: '' }, foo, { y: '' })); diff --git a/testdata/baselines/reference/submodule/conformance/tsxReactEmit5.js.diff b/testdata/baselines/reference/submodule/conformance/tsxReactEmit5.js.diff deleted file mode 100644 index 11664d4a6e..0000000000 --- a/testdata/baselines/reference/submodule/conformance/tsxReactEmit5.js.diff +++ /dev/null @@ -1,8 +0,0 @@ ---- old.tsxReactEmit5.js -+++ new.tsxReactEmit5.js -@@= skipped -26, +26 lines =@@ - // Should emit test_1.React.createElement - // and React.__spread - var foo; --var spread1 = test_1.React.createElement("div", Object.assign({ x: '' }, foo, { y: '' })); -+var spread1 = test_1.React.createElement("div", Object.assign({ x: "" }, foo, { y: "" })); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/conformance/tsxReactEmit6.js b/testdata/baselines/reference/submodule/conformance/tsxReactEmit6.js index b7218cc54e..f755c42572 100644 --- a/testdata/baselines/reference/submodule/conformance/tsxReactEmit6.js +++ b/testdata/baselines/reference/submodule/conformance/tsxReactEmit6.js @@ -34,7 +34,7 @@ var M; // Should emit M.React.createElement // and M.React.__spread var foo; - var spread1 = React.createElement("div", Object.assign({ x: "" }, foo, { y: "" })); + var spread1 = React.createElement("div", Object.assign({ x: '' }, foo, { y: '' })); // Quotes var x = React.createElement("div", null, "This \"quote\" thing"); })(M || (M = {})); diff --git a/testdata/baselines/reference/submodule/conformance/tsxReactEmit6.js.diff b/testdata/baselines/reference/submodule/conformance/tsxReactEmit6.js.diff index 3847206120..078df9f20a 100644 --- a/testdata/baselines/reference/submodule/conformance/tsxReactEmit6.js.diff +++ b/testdata/baselines/reference/submodule/conformance/tsxReactEmit6.js.diff @@ -5,7 +5,7 @@ // and M.React.__spread var foo; - var spread1 = M.React.createElement("div", Object.assign({ x: '' }, foo, { y: '' })); -+ var spread1 = React.createElement("div", Object.assign({ x: "" }, foo, { y: "" })); ++ var spread1 = React.createElement("div", Object.assign({ x: '' }, foo, { y: '' })); // Quotes - var x = M.React.createElement("div", null, "This \"quote\" thing"); + var x = React.createElement("div", null, "This \"quote\" thing"); diff --git a/testdata/baselines/reference/submodule/conformance/tsxReactEmitEntities.js b/testdata/baselines/reference/submodule/conformance/tsxReactEmitEntities.js index 4eed5bcb7e..fe65fd4a4b 100644 --- a/testdata/baselines/reference/submodule/conformance/tsxReactEmitEntities.js +++ b/testdata/baselines/reference/submodule/conformance/tsxReactEmitEntities.js @@ -35,6 +35,6 @@ React.createElement("div", { attr: "{\u2026}\\" }); // Does not happen for a string literal that happens to be inside an attribute (and escapes then work) React.createElement("div", { attr: "{…}\"" }); // Preserves single quotes -React.createElement("div", { attr: "\"" }); +React.createElement("div", { attr: '"' }); // https://github.com/microsoft/TypeScript/issues/35732 React.createElement("div", null, "\uD83D\uDC08\uD83D\uDC15\uD83D\uDC07\uD83D\uDC11"); diff --git a/testdata/baselines/reference/submodule/conformance/tsxReactEmitEntities.js.diff b/testdata/baselines/reference/submodule/conformance/tsxReactEmitEntities.js.diff deleted file mode 100644 index 7316f258cb..0000000000 --- a/testdata/baselines/reference/submodule/conformance/tsxReactEmitEntities.js.diff +++ /dev/null @@ -1,10 +0,0 @@ ---- old.tsxReactEmitEntities.js -+++ new.tsxReactEmitEntities.js -@@= skipped -34, +34 lines =@@ - // Does not happen for a string literal that happens to be inside an attribute (and escapes then work) - React.createElement("div", { attr: "{…}\"" }); - // Preserves single quotes --React.createElement("div", { attr: '"' }); -+React.createElement("div", { attr: "\"" }); - // https://github.com/microsoft/TypeScript/issues/35732 - React.createElement("div", null, "\uD83D\uDC08\uD83D\uDC15\uD83D\uDC07\uD83D\uDC11"); \ No newline at end of file From 3d646096e8055d124c69727b7ba1e6b93c510c67 Mon Sep 17 00:00:00 2001 From: Gabriela Araujo Britto Date: Thu, 11 Dec 2025 02:09:38 +0000 Subject: [PATCH 4/5] don't preserve flags for literal in property of enum member --- internal/transformers/tstransforms/runtimesyntax.go | 4 ++-- .../submodule/compiler/enumWithQuotedElementName1.js | 2 +- .../compiler/enumWithQuotedElementName1.js.diff | 9 --------- .../submodule/compiler/enumWithUnicodeEscape1.js | 2 +- .../submodule/compiler/enumWithUnicodeEscape1.js.diff | 9 --------- 5 files changed, 4 insertions(+), 22 deletions(-) delete mode 100644 testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js.diff delete mode 100644 testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js.diff diff --git a/internal/transformers/tstransforms/runtimesyntax.go b/internal/transformers/tstransforms/runtimesyntax.go index 76436fab16..0b91dd02b0 100644 --- a/internal/transformers/tstransforms/runtimesyntax.go +++ b/internal/transformers/tstransforms/runtimesyntax.go @@ -191,9 +191,9 @@ func (tx *RuntimeSyntaxTransformer) getExpressionForPropertyName(member *ast.Enu case ast.KindIdentifier: return tx.Factory().NewStringLiteralFromNode(name) case ast.KindStringLiteral: - return tx.Factory().NewStringLiteral(name.Text(), name.AsStringLiteral().TokenFlags) + return tx.Factory().NewStringLiteral(name.Text(), ast.TokenFlagsNone) case ast.KindNumericLiteral: - return tx.Factory().NewNumericLiteral(name.Text(), name.AsNumericLiteral().TokenFlags) + return tx.Factory().NewNumericLiteral(name.Text(), ast.TokenFlagsNone) default: return name } diff --git a/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js b/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js index 07c9a91336..46bd9a0807 100644 --- a/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js +++ b/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js @@ -8,5 +8,5 @@ enum E { //// [enumWithQuotedElementName1.js] var E; (function (E) { - E[E['fo"o'] = 0] = 'fo"o'; + E[E["fo\"o"] = 0] = "fo\"o"; })(E || (E = {})); diff --git a/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js.diff b/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js.diff deleted file mode 100644 index a5edf2e738..0000000000 --- a/testdata/baselines/reference/submodule/compiler/enumWithQuotedElementName1.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.enumWithQuotedElementName1.js -+++ new.enumWithQuotedElementName1.js -@@= skipped -7, +7 lines =@@ - //// [enumWithQuotedElementName1.js] - var E; - (function (E) { -- E[E["fo\"o"] = 0] = "fo\"o"; -+ E[E['fo"o'] = 0] = 'fo"o'; - })(E || (E = {})); \ No newline at end of file diff --git a/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js b/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js index d330f78132..6cd3a92d0b 100644 --- a/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js +++ b/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js @@ -9,5 +9,5 @@ enum E { //// [enumWithUnicodeEscape1.js] var E; (function (E) { - E[E['gold \u2730'] = 0] = 'gold \u2730'; + E[E["gold \u2730"] = 0] = "gold \u2730"; })(E || (E = {})); diff --git a/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js.diff b/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js.diff deleted file mode 100644 index 71caa469bb..0000000000 --- a/testdata/baselines/reference/submodule/compiler/enumWithUnicodeEscape1.js.diff +++ /dev/null @@ -1,9 +0,0 @@ ---- old.enumWithUnicodeEscape1.js -+++ new.enumWithUnicodeEscape1.js -@@= skipped -8, +8 lines =@@ - //// [enumWithUnicodeEscape1.js] - var E; - (function (E) { -- E[E["gold \u2730"] = 0] = "gold \u2730"; -+ E[E['gold \u2730'] = 0] = 'gold \u2730'; - })(E || (E = {})); \ No newline at end of file From d77cc96c083801694b1a89c0f732eb5f3b719b17 Mon Sep 17 00:00:00 2001 From: Gabriela Araujo Britto Date: Thu, 11 Dec 2025 17:05:03 +0000 Subject: [PATCH 5/5] add comments --- internal/transformers/moduletransforms/utilities.go | 2 +- internal/transformers/tstransforms/runtimesyntax.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/transformers/moduletransforms/utilities.go b/internal/transformers/moduletransforms/utilities.go index c53d132d77..f3884982c8 100644 --- a/internal/transformers/moduletransforms/utilities.go +++ b/internal/transformers/moduletransforms/utilities.go @@ -57,7 +57,7 @@ func getExternalModuleNameLiteral(factory *printer.NodeFactory, importNode *ast. if name == nil { name = tryRenameExternalModule(factory, moduleName, sourceFile) } - if name == nil { + if name == nil { // !!! propagate token flags (will produce new diffs) name = factory.NewStringLiteral(moduleName.Text(), ast.TokenFlagsNone) } return name diff --git a/internal/transformers/tstransforms/runtimesyntax.go b/internal/transformers/tstransforms/runtimesyntax.go index 0b91dd02b0..a7ed95f520 100644 --- a/internal/transformers/tstransforms/runtimesyntax.go +++ b/internal/transformers/tstransforms/runtimesyntax.go @@ -190,7 +190,7 @@ func (tx *RuntimeSyntaxTransformer) getExpressionForPropertyName(member *ast.Enu return tx.Visitor().VisitNode(n.Expression) case ast.KindIdentifier: return tx.Factory().NewStringLiteralFromNode(name) - case ast.KindStringLiteral: + case ast.KindStringLiteral: // !!! propagate token flags (will produce new diffs) return tx.Factory().NewStringLiteral(name.Text(), ast.TokenFlagsNone) case ast.KindNumericLiteral: return tx.Factory().NewNumericLiteral(name.Text(), ast.TokenFlagsNone)