diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index b571530c5d9d7..180cd2ae2e160 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -262,9 +262,9 @@ namespace ts { if (isStringOrNumericLiteral(nameExpression)) { return escapeLeadingUnderscores(nameExpression.text); } - - Debug.assert(isWellKnownSymbolSyntactically(nameExpression)); - return getPropertyNameForKnownSymbolName(idText((nameExpression).name)); + else { + Debug.fail("Only computed properties with literal names have declaration names"); + } } return isPropertyNameLiteral(name) ? getEscapedTextOfIdentifierOrLiteral(name) : undefined; } diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 0eaffe07c02c9..bb374b4c912d6 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -452,6 +452,7 @@ namespace ts { // This allows users to just specify library files they want to used through --lib // and they will not get an error from not having unrelated library files let deferredGlobalESSymbolConstructorSymbol: Symbol | undefined; + let deferredGlobalESSymbolConstructorTypeSymbol: Symbol | undefined; let deferredGlobalESSymbolType: ObjectType; let deferredGlobalTypedPropertyDescriptorType: GenericType; let deferredGlobalPromiseType: GenericType; @@ -4420,8 +4421,7 @@ namespace ts { // Use explicitly specified property name ({ p: xxx } form), or otherwise the implied name ({ p } form) const name = declaration.propertyName || declaration.name; const isLate = isLateBindableName(name); - const isWellKnown = isComputedPropertyName(name) && isWellKnownSymbolSyntactically(name.expression); - if (!isLate && !isWellKnown && isComputedNonLiteralName(name)) { + if (!isLate && isComputedNonLiteralName(name)) { const exprType = checkExpression((name as ComputedPropertyName).expression); if (isTypeAssignableToKind(exprType, TypeFlags.ESSymbolLike)) { if (noImplicitAny) { @@ -4444,9 +4444,7 @@ namespace ts { // Use type of the specified property, or otherwise, for a numeric name, the type of the numeric index signature, // or otherwise the type of the string index signature. const nameType = isLate ? checkComputedPropertyName(name as ComputedPropertyName) as LiteralType | UniqueESSymbolType : undefined; - const text = isLate ? getLateBoundNameFromType(nameType!) : - isWellKnown ? getPropertyNameForKnownSymbolName(idText(((name as ComputedPropertyName).expression as PropertyAccessExpression).name)) : - getTextOfPropertyName(name); + const text = isLate ? getLateBoundNameFromType(nameType!) : getTextOfPropertyName(name); // Relax null check on ambient destructuring parameters, since the parameters have no implementation and are just documentation if (strictNullChecks && declaration.flags & NodeFlags.Ambient && isParameterDeclaration(declaration)) { @@ -4839,6 +4837,12 @@ namespace ts { : getTypeFromArrayBindingPattern(pattern, includePatternInType, reportErrors); } + function isGlobalSymbolConstructor(node: Node) { + const symbol = getSymbolOfNode(node); + const globalSymbol = getGlobalESSymbolConstructorTypeSymbol(/*reportErrors*/ false); + return globalSymbol && symbol && symbol === globalSymbol; + } + // Return the type associated with a variable, parameter, or property declaration. In the simple case this is the type // specified in a type annotation or inferred from an initializer. However, in the case of a destructuring declaration it // is a bit more involved. For example: @@ -4854,6 +4858,10 @@ namespace ts { function widenTypeForVariableLikeDeclaration(type: Type | undefined, declaration: any, reportErrors?: boolean) { if (type) { + // TODO: Remove the following SymbolConstructor special case when back compat with pre-3.0 libs isn't required + if (type.flags & TypeFlags.ESSymbol && isGlobalSymbolConstructor(declaration.parent)) { + type = getESSymbolLikeTypeForNode(declaration); + } if (reportErrors) { reportErrorsFromWidening(declaration, type); } @@ -8235,6 +8243,10 @@ namespace ts { return deferredGlobalESSymbolConstructorSymbol || (deferredGlobalESSymbolConstructorSymbol = getGlobalValueSymbol("Symbol" as __String, reportErrors)); } + function getGlobalESSymbolConstructorTypeSymbol(reportErrors: boolean) { + return deferredGlobalESSymbolConstructorTypeSymbol || (deferredGlobalESSymbolConstructorTypeSymbol = getGlobalTypeSymbol("SymbolConstructor" as __String, reportErrors)); + } + function getGlobalESSymbolType(reportErrors: boolean) { return deferredGlobalESSymbolType || (deferredGlobalESSymbolType = getGlobalType("Symbol" as __String, /*arity*/ 0, reportErrors)) || emptyObjectType; } @@ -8894,10 +8906,7 @@ namespace ts { function getPropertyTypeForIndexType(objectType: Type, indexType: Type, accessNode: ElementAccessExpression | IndexedAccessTypeNode | undefined, cacheSymbol: boolean) { const accessExpression = accessNode && accessNode.kind === SyntaxKind.ElementAccessExpression ? accessNode : undefined; - const propName = isTypeUsableAsLateBoundName(indexType) ? getLateBoundNameFromType(indexType) : - accessExpression && checkThatExpressionIsProperSymbolReference(accessExpression.argumentExpression, indexType, /*reportError*/ false) ? - getPropertyNameForKnownSymbolName(idText((accessExpression.argumentExpression).name)) : - undefined; + const propName = isTypeUsableAsLateBoundName(indexType) ? getLateBoundNameFromType(indexType) : undefined; if (propName !== undefined) { const prop = getPropertyOfType(objectType, propName); if (prop) { @@ -16359,9 +16368,6 @@ namespace ts { !isTypeAssignableTo(links.resolvedType, stringNumberSymbolType)) { error(node, Diagnostics.A_computed_property_name_must_be_of_type_string_number_symbol_or_any); } - else { - checkThatExpressionIsProperSymbolReference(node.expression, links.resolvedType, /*reportError*/ true); - } } return links.resolvedType; @@ -16403,7 +16409,7 @@ namespace ts { for (let i = 0; i < node.properties.length; i++) { const memberDecl = node.properties[i]; let member = getSymbolOfNode(memberDecl); - const computedNameType = memberDecl.name && memberDecl.name.kind === SyntaxKind.ComputedPropertyName && !isWellKnownSymbolSyntactically(memberDecl.name.expression) ? + const computedNameType = memberDecl.name && memberDecl.name.kind === SyntaxKind.ComputedPropertyName ? checkComputedPropertyName(memberDecl.name) : undefined; if (memberDecl.kind === SyntaxKind.PropertyAssignment || memberDecl.kind === SyntaxKind.ShorthandPropertyAssignment || @@ -16493,7 +16499,10 @@ namespace ts { } if (computedNameType && !(computedNameType.flags & TypeFlags.StringOrNumberLiteralOrUnique)) { - if (isTypeAssignableTo(computedNameType, stringNumberSymbolType)) { + if (isTypeAny(computedNameType)) { + hasComputedStringProperty = true; // string is the closest to a catch-all index signature we have + } + else if (isTypeAssignableTo(computedNameType, stringNumberSymbolType)) { if (isTypeAssignableTo(computedNameType, numberType)) { hasComputedNumberProperty = true; } @@ -16506,6 +16515,10 @@ namespace ts { } } else { + if (computedNameType && propertiesTable.get(member.escapedName) && !isGetOrSetAccessorDeclaration(memberDecl)) { + // The binder issues error for normal duplicate props, but for computed names we must do so here + error(memberDecl.name, Diagnostics.Duplicate_declaration_0, getNameOfSymbolAsWritten(member)); + } propertiesTable.set(member.escapedName, member); } propertiesArray.push(member); @@ -17980,48 +17993,6 @@ namespace ts { return checkIndexedAccessIndexType(getIndexedAccessType(objectType, indexType, node), node); } - function checkThatExpressionIsProperSymbolReference(expression: Expression, expressionType: Type, reportError: boolean): boolean { - if (expressionType === errorType) { - // There is already an error, so no need to report one. - return false; - } - - if (!isWellKnownSymbolSyntactically(expression)) { - return false; - } - - // Make sure the property type is the primitive symbol type - if ((expressionType.flags & TypeFlags.ESSymbolLike) === 0) { - if (reportError) { - error(expression, Diagnostics.A_computed_property_name_of_the_form_0_must_be_of_type_symbol, getTextOfNode(expression)); - } - return false; - } - - // The name is Symbol., so make sure Symbol actually resolves to the - // global Symbol object - const leftHandSide = (expression).expression; - const leftHandSideSymbol = getResolvedSymbol(leftHandSide); - if (!leftHandSideSymbol) { - return false; - } - - const globalESSymbol = getGlobalESSymbolConstructorSymbol(/*reportErrors*/ true); - if (!globalESSymbol) { - // Already errored when we tried to look up the symbol - return false; - } - - if (leftHandSideSymbol !== globalESSymbol) { - if (reportError) { - error(leftHandSide, Diagnostics.Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object); - } - return false; - } - - return true; - } - function callLikeExpressionMayHaveTypeArguments(node: CallLikeExpression): node is CallExpression | NewExpression { // TODO: Also include tagged templates (https://github.com/Microsoft/TypeScript/issues/11947) return isCallOrNewExpression(node); @@ -24320,6 +24291,12 @@ namespace ts { return arrayElementType; } + function getPropertyNameForKnownSymbolName(symbolName: string): __String { + const ctorType = getGlobalESSymbolConstructorSymbol(/*reportErrors*/ false); + const uniqueType = ctorType && getTypeOfPropertyOfType(getTypeOfSymbol(ctorType), escapeLeadingUnderscores(symbolName)); + return uniqueType && isTypeUsableAsLateBoundName(uniqueType) ? getLateBoundNameFromType(uniqueType) : `__@${symbolName}` as __String; + } + /** * We want to treat type as an iterable, and get the type it is an iterable of. The iterable * must have the following structure (annotated with the names of the variables below): @@ -24542,7 +24519,7 @@ namespace ts { function isGetAccessorWithAnnotatedSetAccessor(node: SignatureDeclaration) { return node.kind === SyntaxKind.GetAccessor - && getEffectiveSetAccessorTypeAnnotationNode(getDeclarationOfKind(node.symbol, SyntaxKind.SetAccessor)!) !== undefined; + && getEffectiveSetAccessorTypeAnnotationNode(getDeclarationOfKind(getSymbolOfNode(node), SyntaxKind.SetAccessor)!) !== undefined; } function isUnwrappedReturnTypeVoidOrAny(func: SignatureDeclaration, returnType: Type): boolean { diff --git a/src/compiler/transformers/ts.ts b/src/compiler/transformers/ts.ts index 4a696c6d130bf..7340e4e8c6dc3 100644 --- a/src/compiler/transformers/ts.ts +++ b/src/compiler/transformers/ts.ts @@ -2108,8 +2108,7 @@ namespace ts { * any such locations */ function isSimpleInlineableExpression(expression: Expression) { - return !isIdentifier(expression) && isSimpleCopiableExpression(expression) || - isWellKnownSymbolSyntactically(expression); + return !isIdentifier(expression) && isSimpleCopiableExpression(expression); } /** diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 6064ef4e6a5f4..f9a1e5a3010aa 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -2566,17 +2566,7 @@ namespace ts { export function isDynamicName(name: DeclarationName): boolean { return name.kind === SyntaxKind.ComputedPropertyName && - !isStringOrNumericLiteral(name.expression) && - !isWellKnownSymbolSyntactically(name.expression); - } - - /** - * Checks if the expression is of the form: - * Symbol.name - * where Symbol is literally the word "Symbol", and name is any identifierName - */ - export function isWellKnownSymbolSyntactically(node: Expression): boolean { - return isPropertyAccessExpression(node) && isESSymbolIdentifier(node.expression); + !isStringOrNumericLiteral(name.expression); } export function getPropertyNameForPropertyNameNode(name: DeclarationName): __String | undefined { @@ -2588,10 +2578,7 @@ namespace ts { } if (name.kind === SyntaxKind.ComputedPropertyName) { const nameExpression = name.expression; - if (isWellKnownSymbolSyntactically(nameExpression)) { - return getPropertyNameForKnownSymbolName(idText((nameExpression).name)); - } - else if (nameExpression.kind === SyntaxKind.StringLiteral || nameExpression.kind === SyntaxKind.NumericLiteral) { + if (nameExpression.kind === SyntaxKind.StringLiteral || nameExpression.kind === SyntaxKind.NumericLiteral) { return escapeLeadingUnderscores((nameExpression).text); } } @@ -2619,10 +2606,6 @@ namespace ts { return node.kind === SyntaxKind.Identifier ? node.escapedText : escapeLeadingUnderscores(node.text); } - export function getPropertyNameForKnownSymbolName(symbolName: string): __String { - return "__@" + symbolName as __String; - } - export function isKnownSymbol(symbol: Symbol): boolean { return startsWith(symbol.escapedName as string, "__@"); } diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index 3465ef333a0a0..758764f217b9e 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -2300,9 +2300,7 @@ Actual: ${stringify(fullActual)}`); private verifyFileContent(fileName: string, text: string) { const actual = this.getFileContent(fileName); - if (actual !== text) { - throw new Error(`verifyFileContent failed:\n${showTextDiff(text, actual)}`); - } + assert.equal(actual, text, "verifyFileContent failed"); } public verifyTextAtCaretIs(text: string) { diff --git a/src/lib/es2015.iterable.d.ts b/src/lib/es2015.iterable.d.ts index 568d3596ddae3..595fc80ad9325 100644 --- a/src/lib/es2015.iterable.d.ts +++ b/src/lib/es2015.iterable.d.ts @@ -5,7 +5,7 @@ interface SymbolConstructor { * A method that returns the default iterator for an object. Called by the semantics of the * for-of statement. */ - readonly iterator: symbol; + readonly iterator: unique symbol; } interface IteratorResult { diff --git a/src/lib/es2015.symbol.wellknown.d.ts b/src/lib/es2015.symbol.wellknown.d.ts index 948c8129a92e6..d086758ee2fab 100644 --- a/src/lib/es2015.symbol.wellknown.d.ts +++ b/src/lib/es2015.symbol.wellknown.d.ts @@ -5,61 +5,61 @@ interface SymbolConstructor { * A method that determines if a constructor object recognizes an object as one of the * constructor’s instances. Called by the semantics of the instanceof operator. */ - readonly hasInstance: symbol; + readonly hasInstance: unique symbol; /** * A Boolean value that if true indicates that an object should flatten to its array elements * by Array.prototype.concat. */ - readonly isConcatSpreadable: symbol; + readonly isConcatSpreadable: unique symbol; /** * A regular expression method that matches the regular expression against a string. Called * by the String.prototype.match method. */ - readonly match: symbol; + readonly match: unique symbol; /** * A regular expression method that replaces matched substrings of a string. Called by the * String.prototype.replace method. */ - readonly replace: symbol; + readonly replace: unique symbol; /** * A regular expression method that returns the index within a string that matches the * regular expression. Called by the String.prototype.search method. */ - readonly search: symbol; + readonly search: unique symbol; /** * A function valued property that is the constructor function that is used to create * derived objects. */ - readonly species: symbol; + readonly species: unique symbol; /** * A regular expression method that splits a string at the indices that match the regular * expression. Called by the String.prototype.split method. */ - readonly split: symbol; + readonly split: unique symbol; /** * A method that converts an object to a corresponding primitive value. * Called by the ToPrimitive abstract operation. */ - readonly toPrimitive: symbol; + readonly toPrimitive: unique symbol; /** * A String value that is used in the creation of the default string description of an object. * Called by the built-in method Object.prototype.toString. */ - readonly toStringTag: symbol; + readonly toStringTag: unique symbol; /** * An Object whose own property names are property names that are excluded from the 'with' * environment bindings of the associated objects. */ - readonly unscopables: symbol; + readonly unscopables: unique symbol; } interface Symbol { diff --git a/src/lib/esnext.asynciterable.d.ts b/src/lib/esnext.asynciterable.d.ts index 11093af623dee..3ef271102861f 100644 --- a/src/lib/esnext.asynciterable.d.ts +++ b/src/lib/esnext.asynciterable.d.ts @@ -6,7 +6,7 @@ interface SymbolConstructor { * A method that returns the default async iterator for an object. Called by the semantics of * the for-await-of statement. */ - readonly asyncIterator: symbol; + readonly asyncIterator: unique symbol; } interface AsyncIterator { diff --git a/src/services/navigationBar.ts b/src/services/navigationBar.ts index 2f928f52c7b62..6180fa2838fe6 100644 --- a/src/services/navigationBar.ts +++ b/src/services/navigationBar.ts @@ -171,16 +171,12 @@ namespace ts.NavigationBar { case SyntaxKind.GetAccessor: case SyntaxKind.SetAccessor: case SyntaxKind.MethodSignature: - if (!hasDynamicName((node))) { - addNodeWithRecursiveChild(node, (node).body); - } + addNodeWithRecursiveChild(node, (node).body); break; case SyntaxKind.PropertyDeclaration: case SyntaxKind.PropertySignature: - if (!hasDynamicName((node))) { - addLeafNode(node); - } + addLeafNode(node); break; case SyntaxKind.ImportClause: @@ -410,7 +406,8 @@ namespace ts.NavigationBar { const declName = getNameOfDeclaration(node); if (declName) { - return unescapeLeadingUnderscores(getPropertyNameForPropertyNameNode(declName)!); // TODO: GH#18217 + const candidate = getPropertyNameForPropertyNameNode(declName); + return candidate ? unescapeLeadingUnderscores(candidate) : getTextOfNode(declName); } switch (node.kind) { case SyntaxKind.FunctionExpression: diff --git a/tests/baselines/reference/ES5For-ofTypeCheck10.errors.txt b/tests/baselines/reference/ES5For-ofTypeCheck10.errors.txt index 232f476f66c62..d5575857f026d 100644 --- a/tests/baselines/reference/ES5For-ofTypeCheck10.errors.txt +++ b/tests/baselines/reference/ES5For-ofTypeCheck10.errors.txt @@ -1,8 +1,7 @@ -tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts(9,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here. tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts(14,15): error TS2569: Type 'StringIterator' is not an array type or a string type. Use compiler option '--downlevelIteration' to allow iterating of iterators. -==== tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts (2 errors) ==== +==== tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts (1 errors) ==== // In ES3/5, you cannot for...of over an arbitrary iterable. class StringIterator { next() { @@ -12,8 +11,6 @@ tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts(14,1 }; } [Symbol.iterator]() { - ~~~~~~ -!!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here. return this; } } diff --git a/tests/baselines/reference/ES5For-ofTypeCheck10.symbols b/tests/baselines/reference/ES5For-ofTypeCheck10.symbols index 5267dd2fbc5e1..103ded7637119 100644 --- a/tests/baselines/reference/ES5For-ofTypeCheck10.symbols +++ b/tests/baselines/reference/ES5For-ofTypeCheck10.symbols @@ -17,6 +17,9 @@ class StringIterator { } [Symbol.iterator]() { >[Symbol.iterator] : Symbol(StringIterator[Symbol.iterator], Decl(ES5For-ofTypeCheck10.ts, 7, 5)) +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.es2015.iterable.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.es2015.iterable.d.ts, --, --)) return this; >this : Symbol(StringIterator, Decl(ES5For-ofTypeCheck10.ts, 0, 0)) diff --git a/tests/baselines/reference/ES5For-ofTypeCheck10.types b/tests/baselines/reference/ES5For-ofTypeCheck10.types index a8f8d99050651..2503c1e1da309 100644 --- a/tests/baselines/reference/ES5For-ofTypeCheck10.types +++ b/tests/baselines/reference/ES5For-ofTypeCheck10.types @@ -21,9 +21,9 @@ class StringIterator { } [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : any ->Symbol : any ->iterator : any +>Symbol.iterator : unique symbol +>Symbol : SymbolConstructor +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/ES5SymbolProperty1.errors.txt b/tests/baselines/reference/ES5SymbolProperty1.errors.txt deleted file mode 100644 index 1b135dcc91670..0000000000000 --- a/tests/baselines/reference/ES5SymbolProperty1.errors.txt +++ /dev/null @@ -1,16 +0,0 @@ -tests/cases/conformance/Symbols/ES5SymbolProperty1.ts(7,6): error TS2471: A computed property name of the form 'Symbol.foo' must be of type 'symbol'. - - -==== tests/cases/conformance/Symbols/ES5SymbolProperty1.ts (1 errors) ==== - interface SymbolConstructor { - foo: string; - } - var Symbol: SymbolConstructor; - - var obj = { - [Symbol.foo]: 0 - ~~~~~~~~~~ -!!! error TS2471: A computed property name of the form 'Symbol.foo' must be of type 'symbol'. - } - - obj[Symbol.foo]; \ No newline at end of file diff --git a/tests/baselines/reference/ES5SymbolProperty1.types b/tests/baselines/reference/ES5SymbolProperty1.types index 7d76614f798cf..2a98d892b2d37 100644 --- a/tests/baselines/reference/ES5SymbolProperty1.types +++ b/tests/baselines/reference/ES5SymbolProperty1.types @@ -10,8 +10,8 @@ var Symbol: SymbolConstructor; >SymbolConstructor : SymbolConstructor var obj = { ->obj : { [Symbol.foo]: number; } ->{ [Symbol.foo]: 0} : { [Symbol.foo]: number; } +>obj : { [x: string]: number; } +>{ [Symbol.foo]: 0} : { [x: string]: number; } [Symbol.foo]: 0 >[Symbol.foo] : number @@ -22,8 +22,8 @@ var obj = { } obj[Symbol.foo]; ->obj[Symbol.foo] : any ->obj : { [Symbol.foo]: number; } +>obj[Symbol.foo] : number +>obj : { [x: string]: number; } >Symbol.foo : string >Symbol : SymbolConstructor >foo : string diff --git a/tests/baselines/reference/ES5SymbolProperty2.errors.txt b/tests/baselines/reference/ES5SymbolProperty2.errors.txt index 0535da56f0616..ddb25232edf1a 100644 --- a/tests/baselines/reference/ES5SymbolProperty2.errors.txt +++ b/tests/baselines/reference/ES5SymbolProperty2.errors.txt @@ -1,15 +1,12 @@ -tests/cases/conformance/Symbols/ES5SymbolProperty2.ts(5,10): error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. tests/cases/conformance/Symbols/ES5SymbolProperty2.ts(10,11): error TS2693: 'Symbol' only refers to a type, but is being used as a value here. -==== tests/cases/conformance/Symbols/ES5SymbolProperty2.ts (2 errors) ==== +==== tests/cases/conformance/Symbols/ES5SymbolProperty2.ts (1 errors) ==== module M { var Symbol: any; export class C { [Symbol.iterator]() { } - ~~~~~~~~~~~~~~~ -!!! error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. } (new C)[Symbol.iterator]; } diff --git a/tests/baselines/reference/ES5SymbolProperty3.errors.txt b/tests/baselines/reference/ES5SymbolProperty3.errors.txt deleted file mode 100644 index 2953ed6ac6ab1..0000000000000 --- a/tests/baselines/reference/ES5SymbolProperty3.errors.txt +++ /dev/null @@ -1,13 +0,0 @@ -tests/cases/conformance/Symbols/ES5SymbolProperty3.ts(4,6): error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. - - -==== tests/cases/conformance/Symbols/ES5SymbolProperty3.ts (1 errors) ==== - var Symbol: any; - - class C { - [Symbol.iterator]() { } - ~~~~~~~~~~~~~~~ -!!! error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. - } - - (new C)[Symbol.iterator] \ No newline at end of file diff --git a/tests/baselines/reference/ES5SymbolProperty4.errors.txt b/tests/baselines/reference/ES5SymbolProperty4.errors.txt deleted file mode 100644 index 18f065c6bd5fc..0000000000000 --- a/tests/baselines/reference/ES5SymbolProperty4.errors.txt +++ /dev/null @@ -1,13 +0,0 @@ -tests/cases/conformance/Symbols/ES5SymbolProperty4.ts(4,6): error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. - - -==== tests/cases/conformance/Symbols/ES5SymbolProperty4.ts (1 errors) ==== - var Symbol: { iterator: string }; - - class C { - [Symbol.iterator]() { } - ~~~~~~~~~~~~~~~ -!!! error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. - } - - (new C)[Symbol.iterator] \ No newline at end of file diff --git a/tests/baselines/reference/ES5SymbolProperty5.errors.txt b/tests/baselines/reference/ES5SymbolProperty5.errors.txt index fb3a9aa78d48e..2a7ac51a63b25 100644 --- a/tests/baselines/reference/ES5SymbolProperty5.errors.txt +++ b/tests/baselines/reference/ES5SymbolProperty5.errors.txt @@ -2,7 +2,7 @@ tests/cases/conformance/Symbols/ES5SymbolProperty5.ts(7,1): error TS2554: Expect ==== tests/cases/conformance/Symbols/ES5SymbolProperty5.ts (1 errors) ==== - var Symbol: { iterator: symbol }; + var Symbol: { readonly iterator: unique symbol }; class C { [Symbol.iterator]() { } diff --git a/tests/baselines/reference/ES5SymbolProperty5.js b/tests/baselines/reference/ES5SymbolProperty5.js index c146b8dd5f1e5..c332ecf146583 100644 --- a/tests/baselines/reference/ES5SymbolProperty5.js +++ b/tests/baselines/reference/ES5SymbolProperty5.js @@ -1,5 +1,5 @@ //// [ES5SymbolProperty5.ts] -var Symbol: { iterator: symbol }; +var Symbol: { readonly iterator: unique symbol }; class C { [Symbol.iterator]() { } diff --git a/tests/baselines/reference/ES5SymbolProperty5.symbols b/tests/baselines/reference/ES5SymbolProperty5.symbols index c5610b9ce2c4b..a954b0ca0320e 100644 --- a/tests/baselines/reference/ES5SymbolProperty5.symbols +++ b/tests/baselines/reference/ES5SymbolProperty5.symbols @@ -1,10 +1,10 @@ === tests/cases/conformance/Symbols/ES5SymbolProperty5.ts === -var Symbol: { iterator: symbol }; +var Symbol: { readonly iterator: unique symbol }; >Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(ES5SymbolProperty5.ts, 0, 3)) >iterator : Symbol(iterator, Decl(ES5SymbolProperty5.ts, 0, 13)) class C { ->C : Symbol(C, Decl(ES5SymbolProperty5.ts, 0, 33)) +>C : Symbol(C, Decl(ES5SymbolProperty5.ts, 0, 49)) [Symbol.iterator]() { } >[Symbol.iterator] : Symbol(C[Symbol.iterator], Decl(ES5SymbolProperty5.ts, 2, 9)) @@ -14,7 +14,7 @@ class C { } (new C)[Symbol.iterator](0) // Should error ->C : Symbol(C, Decl(ES5SymbolProperty5.ts, 0, 33)) +>C : Symbol(C, Decl(ES5SymbolProperty5.ts, 0, 49)) >Symbol.iterator : Symbol(iterator, Decl(ES5SymbolProperty5.ts, 0, 13)) >Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(ES5SymbolProperty5.ts, 0, 3)) >iterator : Symbol(iterator, Decl(ES5SymbolProperty5.ts, 0, 13)) diff --git a/tests/baselines/reference/ES5SymbolProperty5.types b/tests/baselines/reference/ES5SymbolProperty5.types index 1b9ce23873744..6484aedddedef 100644 --- a/tests/baselines/reference/ES5SymbolProperty5.types +++ b/tests/baselines/reference/ES5SymbolProperty5.types @@ -1,16 +1,16 @@ === tests/cases/conformance/Symbols/ES5SymbolProperty5.ts === -var Symbol: { iterator: symbol }; ->Symbol : { iterator: symbol; } ->iterator : symbol +var Symbol: { readonly iterator: unique symbol }; +>Symbol : { readonly iterator: unique symbol; } +>iterator : unique symbol class C { >C : C [Symbol.iterator]() { } >[Symbol.iterator] : () => void ->Symbol.iterator : symbol ->Symbol : { iterator: symbol; } ->iterator : symbol +>Symbol.iterator : unique symbol +>Symbol : { readonly iterator: unique symbol; } +>iterator : unique symbol } (new C)[Symbol.iterator](0) // Should error @@ -19,8 +19,8 @@ class C { >(new C) : C >new C : C >C : typeof C ->Symbol.iterator : symbol ->Symbol : { iterator: symbol; } ->iterator : symbol +>Symbol.iterator : unique symbol +>Symbol : { readonly iterator: unique symbol; } +>iterator : unique symbol >0 : 0 diff --git a/tests/baselines/reference/ES5SymbolProperty7.errors.txt b/tests/baselines/reference/ES5SymbolProperty7.errors.txt deleted file mode 100644 index 21f6f005b3c0f..0000000000000 --- a/tests/baselines/reference/ES5SymbolProperty7.errors.txt +++ /dev/null @@ -1,13 +0,0 @@ -tests/cases/conformance/Symbols/ES5SymbolProperty7.ts(4,6): error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. - - -==== tests/cases/conformance/Symbols/ES5SymbolProperty7.ts (1 errors) ==== - var Symbol: { iterator: any }; - - class C { - [Symbol.iterator]() { } - ~~~~~~~~~~~~~~~ -!!! error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. - } - - (new C)[Symbol.iterator] \ No newline at end of file diff --git a/tests/baselines/reference/FunctionDeclaration8_es6.types b/tests/baselines/reference/FunctionDeclaration8_es6.types index 2588f042add9a..ebd9a509ae174 100644 --- a/tests/baselines/reference/FunctionDeclaration8_es6.types +++ b/tests/baselines/reference/FunctionDeclaration8_es6.types @@ -1,7 +1,7 @@ === tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration8_es6.ts === var v = { [yield]: foo } ->v : { [x: number]: any; } ->{ [yield]: foo } : { [x: number]: any; } +>v : { [x: string]: any; } +>{ [yield]: foo } : { [x: string]: any; } >[yield] : any >yield : any >foo : any diff --git a/tests/baselines/reference/FunctionDeclaration9_es6.types b/tests/baselines/reference/FunctionDeclaration9_es6.types index 2b915b82a67b1..ddd1365303525 100644 --- a/tests/baselines/reference/FunctionDeclaration9_es6.types +++ b/tests/baselines/reference/FunctionDeclaration9_es6.types @@ -3,8 +3,8 @@ function * foo() { >foo : () => IterableIterator var v = { [yield]: foo } ->v : { [x: number]: () => IterableIterator; } ->{ [yield]: foo } : { [x: number]: () => IterableIterator; } +>v : { [x: string]: () => IterableIterator; } +>{ [yield]: foo } : { [x: string]: () => IterableIterator; } >[yield] : () => IterableIterator >yield : any >foo : () => IterableIterator diff --git a/tests/baselines/reference/FunctionPropertyAssignments5_es6.types b/tests/baselines/reference/FunctionPropertyAssignments5_es6.types index 9430360e9da25..7c49b8e9906ba 100644 --- a/tests/baselines/reference/FunctionPropertyAssignments5_es6.types +++ b/tests/baselines/reference/FunctionPropertyAssignments5_es6.types @@ -1,7 +1,7 @@ === tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts === var v = { *[foo()]() { } } ->v : { [x: number]: () => IterableIterator; } ->{ *[foo()]() { } } : { [x: number]: () => IterableIterator; } +>v : { [x: string]: () => IterableIterator; } +>{ *[foo()]() { } } : { [x: string]: () => IterableIterator; } >[foo()] : () => IterableIterator >foo() : any >foo : any diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index 6c3499172187a..ee7349404a248 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -6375,18 +6375,11 @@ declare namespace ts { */ function hasDynamicName(declaration: Declaration): declaration is DynamicNamedDeclaration; function isDynamicName(name: DeclarationName): boolean; - /** - * Checks if the expression is of the form: - * Symbol.name - * where Symbol is literally the word "Symbol", and name is any identifierName - */ - function isWellKnownSymbolSyntactically(node: Expression): boolean; function getPropertyNameForPropertyNameNode(name: DeclarationName): __String | undefined; type PropertyNameLiteral = Identifier | StringLiteralLike | NumericLiteral; function isPropertyNameLiteral(node: Node): node is PropertyNameLiteral; function getTextOfIdentifierOrLiteral(node: PropertyNameLiteral): string; function getEscapedTextOfIdentifierOrLiteral(node: PropertyNameLiteral): __String; - function getPropertyNameForKnownSymbolName(symbolName: string): __String; function isKnownSymbol(symbol: Symbol): boolean; /** * Includes the word "Symbol" with unicode escapes diff --git a/tests/baselines/reference/argumentsObjectIterator02_ES6.types b/tests/baselines/reference/argumentsObjectIterator02_ES6.types index a494a45f9356b..07aa33168f15a 100644 --- a/tests/baselines/reference/argumentsObjectIterator02_ES6.types +++ b/tests/baselines/reference/argumentsObjectIterator02_ES6.types @@ -9,9 +9,9 @@ function doubleAndReturnAsArray(x: number, y: number, z: number): [number, numbe >blah : () => IterableIterator >arguments[Symbol.iterator] : () => IterableIterator >arguments : IArguments ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol let result = []; >result : any[] diff --git a/tests/baselines/reference/asyncArrowFunction8_es2017.types b/tests/baselines/reference/asyncArrowFunction8_es2017.types index 9e8ca263df443..3435d0fa63599 100644 --- a/tests/baselines/reference/asyncArrowFunction8_es2017.types +++ b/tests/baselines/reference/asyncArrowFunction8_es2017.types @@ -5,8 +5,8 @@ var foo = async (): Promise => { >Promise : Promise var v = { [await]: foo } ->v : { [x: number]: () => Promise; } ->{ [await]: foo } : { [x: number]: () => Promise; } +>v : { [x: string]: () => Promise; } +>{ [await]: foo } : { [x: string]: () => Promise; } >[await] : () => Promise >await : any > : any diff --git a/tests/baselines/reference/asyncArrowFunction8_es5.types b/tests/baselines/reference/asyncArrowFunction8_es5.types index 8fd401139959c..7c754a99de89b 100644 --- a/tests/baselines/reference/asyncArrowFunction8_es5.types +++ b/tests/baselines/reference/asyncArrowFunction8_es5.types @@ -5,8 +5,8 @@ var foo = async (): Promise => { >Promise : Promise var v = { [await]: foo } ->v : { [x: number]: () => Promise; } ->{ [await]: foo } : { [x: number]: () => Promise; } +>v : { [x: string]: () => Promise; } +>{ [await]: foo } : { [x: string]: () => Promise; } >[await] : () => Promise >await : any > : any diff --git a/tests/baselines/reference/asyncArrowFunction8_es6.types b/tests/baselines/reference/asyncArrowFunction8_es6.types index 7c53be7843ed2..9bd96c3fb3aa6 100644 --- a/tests/baselines/reference/asyncArrowFunction8_es6.types +++ b/tests/baselines/reference/asyncArrowFunction8_es6.types @@ -5,8 +5,8 @@ var foo = async (): Promise => { >Promise : Promise var v = { [await]: foo } ->v : { [x: number]: () => Promise; } ->{ [await]: foo } : { [x: number]: () => Promise; } +>v : { [x: string]: () => Promise; } +>{ [await]: foo } : { [x: string]: () => Promise; } >[await] : () => Promise >await : any > : any diff --git a/tests/baselines/reference/asyncFunctionDeclaration8_es2017.types b/tests/baselines/reference/asyncFunctionDeclaration8_es2017.types index 3e46e59409b83..92d7335fd54e0 100644 --- a/tests/baselines/reference/asyncFunctionDeclaration8_es2017.types +++ b/tests/baselines/reference/asyncFunctionDeclaration8_es2017.types @@ -1,7 +1,7 @@ === tests/cases/conformance/async/es2017/functionDeclarations/asyncFunctionDeclaration8_es2017.ts === var v = { [await]: foo } ->v : { [x: number]: any; } ->{ [await]: foo } : { [x: number]: any; } +>v : { [x: string]: any; } +>{ [await]: foo } : { [x: string]: any; } >[await] : any >await : any >foo : any diff --git a/tests/baselines/reference/asyncFunctionDeclaration8_es5.types b/tests/baselines/reference/asyncFunctionDeclaration8_es5.types index f8647156d1101..65fdadc7696bd 100644 --- a/tests/baselines/reference/asyncFunctionDeclaration8_es5.types +++ b/tests/baselines/reference/asyncFunctionDeclaration8_es5.types @@ -1,7 +1,7 @@ === tests/cases/conformance/async/es5/functionDeclarations/asyncFunctionDeclaration8_es5.ts === var v = { [await]: foo } ->v : { [x: number]: any; } ->{ [await]: foo } : { [x: number]: any; } +>v : { [x: string]: any; } +>{ [await]: foo } : { [x: string]: any; } >[await] : any >await : any >foo : any diff --git a/tests/baselines/reference/asyncFunctionDeclaration8_es6.types b/tests/baselines/reference/asyncFunctionDeclaration8_es6.types index 43a0245c7e0d0..79b594b6734ba 100644 --- a/tests/baselines/reference/asyncFunctionDeclaration8_es6.types +++ b/tests/baselines/reference/asyncFunctionDeclaration8_es6.types @@ -1,7 +1,7 @@ === tests/cases/conformance/async/es6/functionDeclarations/asyncFunctionDeclaration8_es6.ts === var v = { [await]: foo } ->v : { [x: number]: any; } ->{ [await]: foo } : { [x: number]: any; } +>v : { [x: string]: any; } +>{ [await]: foo } : { [x: string]: any; } >[await] : any >await : any >foo : any diff --git a/tests/baselines/reference/asyncFunctionDeclaration9_es2017.types b/tests/baselines/reference/asyncFunctionDeclaration9_es2017.types index 47bab654da440..9fad01b2ae244 100644 --- a/tests/baselines/reference/asyncFunctionDeclaration9_es2017.types +++ b/tests/baselines/reference/asyncFunctionDeclaration9_es2017.types @@ -4,8 +4,8 @@ async function foo(): Promise { >Promise : Promise var v = { [await]: foo } ->v : { [x: number]: () => Promise; } ->{ [await]: foo } : { [x: number]: () => Promise; } +>v : { [x: string]: () => Promise; } +>{ [await]: foo } : { [x: string]: () => Promise; } >[await] : () => Promise >await : any > : any diff --git a/tests/baselines/reference/asyncFunctionDeclaration9_es5.types b/tests/baselines/reference/asyncFunctionDeclaration9_es5.types index a049fbc9faa32..53d2545c8971f 100644 --- a/tests/baselines/reference/asyncFunctionDeclaration9_es5.types +++ b/tests/baselines/reference/asyncFunctionDeclaration9_es5.types @@ -4,8 +4,8 @@ async function foo(): Promise { >Promise : Promise var v = { [await]: foo } ->v : { [x: number]: () => Promise; } ->{ [await]: foo } : { [x: number]: () => Promise; } +>v : { [x: string]: () => Promise; } +>{ [await]: foo } : { [x: string]: () => Promise; } >[await] : () => Promise >await : any > : any diff --git a/tests/baselines/reference/asyncFunctionDeclaration9_es6.types b/tests/baselines/reference/asyncFunctionDeclaration9_es6.types index ad3ad1e7b0e62..789ee0d5ee3ab 100644 --- a/tests/baselines/reference/asyncFunctionDeclaration9_es6.types +++ b/tests/baselines/reference/asyncFunctionDeclaration9_es6.types @@ -4,8 +4,8 @@ async function foo(): Promise { >Promise : Promise var v = { [await]: foo } ->v : { [x: number]: () => Promise; } ->{ [await]: foo } : { [x: number]: () => Promise; } +>v : { [x: string]: () => Promise; } +>{ [await]: foo } : { [x: string]: () => Promise; } >[await] : () => Promise >await : any > : any diff --git a/tests/baselines/reference/complexRecursiveCollections.types b/tests/baselines/reference/complexRecursiveCollections.types index d29a9956e194d..f8203b1b4788d 100644 --- a/tests/baselines/reference/complexRecursiveCollections.types +++ b/tests/baselines/reference/complexRecursiveCollections.types @@ -1909,9 +1909,9 @@ declare module Immutable { [Symbol.iterator](): IterableIterator<[keyof T, T[keyof T]]>; >[Symbol.iterator] : () => IterableIterator<[keyof T, T[keyof T]]> ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >IterableIterator : IterableIterator >T : T >T : T @@ -2736,9 +2736,9 @@ declare module Immutable { [Symbol.iterator](): IterableIterator<[K, V]>; >[Symbol.iterator] : () => IterableIterator<[K, V]> ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >IterableIterator : IterableIterator >K : K >V : V @@ -2980,9 +2980,9 @@ declare module Immutable { [Symbol.iterator](): IterableIterator; >[Symbol.iterator] : () => IterableIterator ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >IterableIterator : IterableIterator >T : T } @@ -3090,9 +3090,9 @@ declare module Immutable { [Symbol.iterator](): IterableIterator; >[Symbol.iterator] : () => IterableIterator ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >IterableIterator : IterableIterator >T : T } diff --git a/tests/baselines/reference/computedPropertiesInDestructuring1.types b/tests/baselines/reference/computedPropertiesInDestructuring1.types index a8605d2a42c21..f57a6e4a95a1c 100644 --- a/tests/baselines/reference/computedPropertiesInDestructuring1.types +++ b/tests/baselines/reference/computedPropertiesInDestructuring1.types @@ -163,8 +163,8 @@ let [{[foo.toExponential()]: bar7}] = [{bar: "bar"}]; [{[foo()]: bar4}] = [{bar: "bar"}]; >[{[foo()]: bar4}] = [{bar: "bar"}] : [{ bar: string; }] ->[{[foo()]: bar4}] : [{ [x: number]: any; }] ->{[foo()]: bar4} : { [x: number]: any; } +>[{[foo()]: bar4}] : [{ [x: string]: any; }] +>{[foo()]: bar4} : { [x: string]: any; } >[foo()] : any >foo() : any >foo : string @@ -176,8 +176,8 @@ let [{[foo.toExponential()]: bar7}] = [{bar: "bar"}]; [{[(1 + {})]: bar4}] = [{bar: "bar"}]; >[{[(1 + {})]: bar4}] = [{bar: "bar"}] : [{ bar: string; }] ->[{[(1 + {})]: bar4}] : [{ [x: number]: any; }] ->{[(1 + {})]: bar4} : { [x: number]: any; } +>[{[(1 + {})]: bar4}] : [{ [x: string]: any; }] +>{[(1 + {})]: bar4} : { [x: string]: any; } >[(1 + {})] : any >(1 + {}) : any >1 + {} : any diff --git a/tests/baselines/reference/computedPropertiesInDestructuring1_ES6.types b/tests/baselines/reference/computedPropertiesInDestructuring1_ES6.types index 1a88bc0358db7..240440cceb4b1 100644 --- a/tests/baselines/reference/computedPropertiesInDestructuring1_ES6.types +++ b/tests/baselines/reference/computedPropertiesInDestructuring1_ES6.types @@ -170,8 +170,8 @@ let [{[foo.toExponential()]: bar7}] = [{bar: "bar"}]; [{[foo()]: bar4}] = [{bar: "bar"}]; >[{[foo()]: bar4}] = [{bar: "bar"}] : [{ bar: string; }] ->[{[foo()]: bar4}] : [{ [x: number]: any; }] ->{[foo()]: bar4} : { [x: number]: any; } +>[{[foo()]: bar4}] : [{ [x: string]: any; }] +>{[foo()]: bar4} : { [x: string]: any; } >[foo()] : any >foo() : any >foo : string @@ -183,8 +183,8 @@ let [{[foo.toExponential()]: bar7}] = [{bar: "bar"}]; [{[(1 + {})]: bar4}] = [{bar: "bar"}]; >[{[(1 + {})]: bar4}] = [{bar: "bar"}] : [{ bar: string; }] ->[{[(1 + {})]: bar4}] : [{ [x: number]: any; }] ->{[(1 + {})]: bar4} : { [x: number]: any; } +>[{[(1 + {})]: bar4}] : [{ [x: string]: any; }] +>{[(1 + {})]: bar4} : { [x: string]: any; } >[(1 + {})] : any >(1 + {}) : any >1 + {} : any diff --git a/tests/baselines/reference/computedPropertyNames18_ES5.types b/tests/baselines/reference/computedPropertyNames18_ES5.types index 893de7a3157b1..6ab24fd81954d 100644 --- a/tests/baselines/reference/computedPropertyNames18_ES5.types +++ b/tests/baselines/reference/computedPropertyNames18_ES5.types @@ -3,8 +3,8 @@ function foo() { >foo : () => void var obj = { ->obj : { [x: number]: number; } ->{ [this.bar]: 0 } : { [x: number]: number; } +>obj : { [x: string]: number; } +>{ [this.bar]: 0 } : { [x: string]: number; } [this.bar]: 0 >[this.bar] : number diff --git a/tests/baselines/reference/computedPropertyNames18_ES6.types b/tests/baselines/reference/computedPropertyNames18_ES6.types index 37f531a7907ef..f50f2f8a3517d 100644 --- a/tests/baselines/reference/computedPropertyNames18_ES6.types +++ b/tests/baselines/reference/computedPropertyNames18_ES6.types @@ -3,8 +3,8 @@ function foo() { >foo : () => void var obj = { ->obj : { [x: number]: number; } ->{ [this.bar]: 0 } : { [x: number]: number; } +>obj : { [x: string]: number; } +>{ [this.bar]: 0 } : { [x: string]: number; } [this.bar]: 0 >[this.bar] : number diff --git a/tests/baselines/reference/computedPropertyNames19_ES5.types b/tests/baselines/reference/computedPropertyNames19_ES5.types index 81bf76e4ac3c5..2abbae2716dfa 100644 --- a/tests/baselines/reference/computedPropertyNames19_ES5.types +++ b/tests/baselines/reference/computedPropertyNames19_ES5.types @@ -3,8 +3,8 @@ module M { >M : typeof M var obj = { ->obj : { [x: number]: number; } ->{ [this.bar]: 0 } : { [x: number]: number; } +>obj : { [x: string]: number; } +>{ [this.bar]: 0 } : { [x: string]: number; } [this.bar]: 0 >[this.bar] : number diff --git a/tests/baselines/reference/computedPropertyNames19_ES6.types b/tests/baselines/reference/computedPropertyNames19_ES6.types index 5dcc6df206aea..e9b738e651186 100644 --- a/tests/baselines/reference/computedPropertyNames19_ES6.types +++ b/tests/baselines/reference/computedPropertyNames19_ES6.types @@ -3,8 +3,8 @@ module M { >M : typeof M var obj = { ->obj : { [x: number]: number; } ->{ [this.bar]: 0 } : { [x: number]: number; } +>obj : { [x: string]: number; } +>{ [this.bar]: 0 } : { [x: string]: number; } [this.bar]: 0 >[this.bar] : number diff --git a/tests/baselines/reference/computedPropertyNames20_ES5.types b/tests/baselines/reference/computedPropertyNames20_ES5.types index cc0614b3d0b45..2e8acb2d0142f 100644 --- a/tests/baselines/reference/computedPropertyNames20_ES5.types +++ b/tests/baselines/reference/computedPropertyNames20_ES5.types @@ -1,7 +1,7 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames20_ES5.ts === var obj = { ->obj : { [x: number]: number; } ->{ [this.bar]: 0} : { [x: number]: number; } +>obj : { [x: string]: number; } +>{ [this.bar]: 0} : { [x: string]: number; } [this.bar]: 0 >[this.bar] : number diff --git a/tests/baselines/reference/computedPropertyNames20_ES6.types b/tests/baselines/reference/computedPropertyNames20_ES6.types index 5ffc037860e99..99184816fc2b7 100644 --- a/tests/baselines/reference/computedPropertyNames20_ES6.types +++ b/tests/baselines/reference/computedPropertyNames20_ES6.types @@ -1,7 +1,7 @@ === tests/cases/conformance/es6/computedProperties/computedPropertyNames20_ES6.ts === var obj = { ->obj : { [x: number]: number; } ->{ [this.bar]: 0} : { [x: number]: number; } +>obj : { [x: string]: number; } +>{ [this.bar]: 0} : { [x: string]: number; } [this.bar]: 0 >[this.bar] : number diff --git a/tests/baselines/reference/computedPropertyNames23_ES5.types b/tests/baselines/reference/computedPropertyNames23_ES5.types index 7090bfa3ba9a0..88bfa0c8cd479 100644 --- a/tests/baselines/reference/computedPropertyNames23_ES5.types +++ b/tests/baselines/reference/computedPropertyNames23_ES5.types @@ -13,7 +13,7 @@ class C { { [this.bar()]: 1 }[0] >{ [this.bar()]: 1 }[0] : number ->{ [this.bar()]: 1 } : { [x: number]: number; } +>{ [this.bar()]: 1 } : { [x: string]: number; } >[this.bar()] : number >this.bar() : any >this.bar : any diff --git a/tests/baselines/reference/computedPropertyNames23_ES6.types b/tests/baselines/reference/computedPropertyNames23_ES6.types index 39133196ed42f..7c05c1eac5d45 100644 --- a/tests/baselines/reference/computedPropertyNames23_ES6.types +++ b/tests/baselines/reference/computedPropertyNames23_ES6.types @@ -13,7 +13,7 @@ class C { { [this.bar()]: 1 }[0] >{ [this.bar()]: 1 }[0] : number ->{ [this.bar()]: 1 } : { [x: number]: number; } +>{ [this.bar()]: 1 } : { [x: string]: number; } >[this.bar()] : number >this.bar() : any >this.bar : any diff --git a/tests/baselines/reference/computedPropertyNames26_ES5.types b/tests/baselines/reference/computedPropertyNames26_ES5.types index c9bebbd010a9c..429c2abadcf98 100644 --- a/tests/baselines/reference/computedPropertyNames26_ES5.types +++ b/tests/baselines/reference/computedPropertyNames26_ES5.types @@ -18,7 +18,7 @@ class C extends Base { { [super.bar()]: 1 }[0] >{ [super.bar()]: 1 }[0] : number ->{ [super.bar()]: 1 } : { [x: number]: number; } +>{ [super.bar()]: 1 } : { [x: string]: number; } >[super.bar()] : number >super.bar() : any >super.bar : any diff --git a/tests/baselines/reference/computedPropertyNames26_ES6.types b/tests/baselines/reference/computedPropertyNames26_ES6.types index 6a4cf5a15e0c9..fa59e87db9ea4 100644 --- a/tests/baselines/reference/computedPropertyNames26_ES6.types +++ b/tests/baselines/reference/computedPropertyNames26_ES6.types @@ -20,7 +20,7 @@ class C extends Base { { [super.bar()]: 1 }[0] >{ [super.bar()]: 1 }[0] : number ->{ [super.bar()]: 1 } : { [x: number]: number; } +>{ [super.bar()]: 1 } : { [x: string]: number; } >[super.bar()] : number >super.bar() : any >super.bar : any diff --git a/tests/baselines/reference/computedPropertyNames48_ES5.types b/tests/baselines/reference/computedPropertyNames48_ES5.types index 9a79d2796230e..fb65f6daf6353 100644 --- a/tests/baselines/reference/computedPropertyNames48_ES5.types +++ b/tests/baselines/reference/computedPropertyNames48_ES5.types @@ -17,7 +17,7 @@ var a: any; extractIndexer({ >extractIndexer({ [a]: ""}) : string >extractIndexer : (p: { [n: number]: T; }) => T ->{ [a]: ""} : { [x: number]: string; } +>{ [a]: ""} : { [x: string]: string; } [a]: "" >[a] : string diff --git a/tests/baselines/reference/computedPropertyNames48_ES6.types b/tests/baselines/reference/computedPropertyNames48_ES6.types index 5be1ae27e5089..6588b3ca7f310 100644 --- a/tests/baselines/reference/computedPropertyNames48_ES6.types +++ b/tests/baselines/reference/computedPropertyNames48_ES6.types @@ -17,7 +17,7 @@ var a: any; extractIndexer({ >extractIndexer({ [a]: ""}) : string >extractIndexer : (p: { [n: number]: T; }) => T ->{ [a]: ""} : { [x: number]: string; } +>{ [a]: ""} : { [x: string]: string; } [a]: "" >[a] : string diff --git a/tests/baselines/reference/decoratorsOnComputedProperties.js b/tests/baselines/reference/decoratorsOnComputedProperties.js index 2af6b460c0518..d172100241a4f 100644 --- a/tests/baselines/reference/decoratorsOnComputedProperties.js +++ b/tests/baselines/reference/decoratorsOnComputedProperties.js @@ -196,7 +196,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key, else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; -var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21; +var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51; function x(o, k) { } let i = 0; function foo() { return ++i + ""; } @@ -206,252 +206,256 @@ const fieldNameC = "fieldName3"; class A { constructor() { this["property2"] = 2; - this[Symbol.iterator] = null; - this["property4"] = 2; - this[Symbol.match] = null; this[_b] = null; - this[_d] = null; + this["property4"] = 2; + this[_c] = null; + this[_e] = null; + this[_g] = null; } } -foo(), _a = foo(), _b = foo(), _c = fieldNameB, _d = fieldNameC; +_a = Symbol.toStringTag, _b = Symbol.iterator, Symbol.isConcatSpreadable, _c = Symbol.match, foo(), _d = foo(), _e = foo(), _f = fieldNameB, _g = fieldNameC; __decorate([ x ], A.prototype, "property", void 0); __decorate([ x -], A.prototype, Symbol.toStringTag, void 0); +], A.prototype, _a, void 0); __decorate([ x ], A.prototype, "property2", void 0); __decorate([ x -], A.prototype, Symbol.iterator, void 0); +], A.prototype, _b, void 0); __decorate([ x -], A.prototype, _a, void 0); +], A.prototype, _d, void 0); __decorate([ x -], A.prototype, _b, void 0); +], A.prototype, _e, void 0); __decorate([ x -], A.prototype, _c, void 0); +], A.prototype, _f, void 0); __decorate([ x -], A.prototype, _d, void 0); -void (_j = class B { +], A.prototype, _g, void 0); +void (_q = class B { constructor() { this["property2"] = 2; - this[Symbol.iterator] = null; + this[_j] = null; this["property4"] = 2; - this[Symbol.match] = null; - this[_f] = null; - this[_h] = null; + this[_k] = null; + this[_m] = null; + this[_p] = null; } }, + _h = Symbol.toStringTag, + _j = Symbol.iterator, + Symbol.isConcatSpreadable, + _k = Symbol.match, foo(), - _e = foo(), - _f = foo(), - _g = fieldNameB, - _h = fieldNameC, - _j); + _l = foo(), + _m = foo(), + _o = fieldNameB, + _p = fieldNameC, + _q); class C { constructor() { this["property2"] = 2; - this[Symbol.iterator] = null; + this[_s] = null; this["property4"] = 2; - this[Symbol.match] = null; - this[_l] = null; - this[_o] = null; + this[_t] = null; + this[_v] = null; + this[_x] = null; } - [(foo(), _k = foo(), _l = foo(), _m = fieldNameB, _o = fieldNameC, "some" + "method")]() { } + [(_r = Symbol.toStringTag, _s = Symbol.iterator, Symbol.isConcatSpreadable, _t = Symbol.match, foo(), _u = foo(), _v = foo(), _w = fieldNameB, _x = fieldNameC, "some" + "method")]() { } } __decorate([ x ], C.prototype, "property", void 0); __decorate([ x -], C.prototype, Symbol.toStringTag, void 0); +], C.prototype, _r, void 0); __decorate([ x ], C.prototype, "property2", void 0); __decorate([ x -], C.prototype, Symbol.iterator, void 0); +], C.prototype, _s, void 0); __decorate([ x -], C.prototype, _k, void 0); +], C.prototype, _u, void 0); __decorate([ x -], C.prototype, _l, void 0); +], C.prototype, _v, void 0); __decorate([ x -], C.prototype, _m, void 0); +], C.prototype, _w, void 0); __decorate([ x -], C.prototype, _o, void 0); +], C.prototype, _x, void 0); void class D { constructor() { this["property2"] = 2; - this[Symbol.iterator] = null; + this[_z] = null; this["property4"] = 2; - this[Symbol.match] = null; - this[_q] = null; - this[_s] = null; + this[_0] = null; + this[_2] = null; + this[_4] = null; } - [(foo(), _p = foo(), _q = foo(), _r = fieldNameB, _s = fieldNameC, "some" + "method")]() { } + [(_y = Symbol.toStringTag, _z = Symbol.iterator, Symbol.isConcatSpreadable, _0 = Symbol.match, foo(), _1 = foo(), _2 = foo(), _3 = fieldNameB, _4 = fieldNameC, "some" + "method")]() { } }; class E { constructor() { this["property2"] = 2; - this[Symbol.iterator] = null; + this[_6] = null; this["property4"] = 2; - this[Symbol.match] = null; - this[_u] = null; - this[_w] = null; + this[_7] = null; + this[_9] = null; + this[_11] = null; } - [(foo(), _t = foo(), _u = foo(), "some" + "method")]() { } + [(_5 = Symbol.toStringTag, _6 = Symbol.iterator, Symbol.isConcatSpreadable, _7 = Symbol.match, foo(), _8 = foo(), _9 = foo(), "some" + "method")]() { } } -_v = fieldNameB, _w = fieldNameC; +_10 = fieldNameB, _11 = fieldNameC; __decorate([ x ], E.prototype, "property", void 0); __decorate([ x -], E.prototype, Symbol.toStringTag, void 0); +], E.prototype, _5, void 0); __decorate([ x ], E.prototype, "property2", void 0); __decorate([ x -], E.prototype, Symbol.iterator, void 0); +], E.prototype, _6, void 0); __decorate([ x -], E.prototype, _t, void 0); +], E.prototype, _8, void 0); __decorate([ x -], E.prototype, _u, void 0); +], E.prototype, _9, void 0); __decorate([ x -], E.prototype, _v, void 0); +], E.prototype, _10, void 0); __decorate([ x -], E.prototype, _w, void 0); -void (_1 = class F { +], E.prototype, _11, void 0); +void (_19 = class F { constructor() { this["property2"] = 2; - this[Symbol.iterator] = null; + this[_13] = null; this["property4"] = 2; - this[Symbol.match] = null; - this[_y] = null; - this[_0] = null; + this[_14] = null; + this[_16] = null; + this[_18] = null; } - [(foo(), _x = foo(), _y = foo(), "some" + "method")]() { } + [(_12 = Symbol.toStringTag, _13 = Symbol.iterator, Symbol.isConcatSpreadable, _14 = Symbol.match, foo(), _15 = foo(), _16 = foo(), "some" + "method")]() { } }, - _z = fieldNameB, - _0 = fieldNameC, - _1); + _17 = fieldNameB, + _18 = fieldNameC, + _19); class G { constructor() { this["property2"] = 2; - this[Symbol.iterator] = null; + this[_21] = null; this["property4"] = 2; - this[Symbol.match] = null; - this[_3] = null; - this[_5] = null; + this[_22] = null; + this[_24] = null; + this[_26] = null; } - [(foo(), _2 = foo(), _3 = foo(), "some" + "method")]() { } - [(_4 = fieldNameB, "some" + "method2")]() { } + [(_20 = Symbol.toStringTag, _21 = Symbol.iterator, Symbol.isConcatSpreadable, _22 = Symbol.match, foo(), _23 = foo(), _24 = foo(), "some" + "method")]() { } + [(_25 = fieldNameB, "some" + "method2")]() { } } -_5 = fieldNameC; +_26 = fieldNameC; __decorate([ x ], G.prototype, "property", void 0); __decorate([ x -], G.prototype, Symbol.toStringTag, void 0); +], G.prototype, _20, void 0); __decorate([ x ], G.prototype, "property2", void 0); __decorate([ x -], G.prototype, Symbol.iterator, void 0); +], G.prototype, _21, void 0); __decorate([ x -], G.prototype, _2, void 0); +], G.prototype, _23, void 0); __decorate([ x -], G.prototype, _3, void 0); +], G.prototype, _24, void 0); __decorate([ x -], G.prototype, _4, void 0); +], G.prototype, _25, void 0); __decorate([ x -], G.prototype, _5, void 0); -void (_10 = class H { +], G.prototype, _26, void 0); +void (_34 = class H { constructor() { this["property2"] = 2; - this[Symbol.iterator] = null; + this[_28] = null; this["property4"] = 2; - this[Symbol.match] = null; - this[_7] = null; - this[_9] = null; + this[_29] = null; + this[_31] = null; + this[_33] = null; } - [(foo(), _6 = foo(), _7 = foo(), "some" + "method")]() { } - [(_8 = fieldNameB, "some" + "method2")]() { } + [(_27 = Symbol.toStringTag, _28 = Symbol.iterator, Symbol.isConcatSpreadable, _29 = Symbol.match, foo(), _30 = foo(), _31 = foo(), "some" + "method")]() { } + [(_32 = fieldNameB, "some" + "method2")]() { } }, - _9 = fieldNameC, - _10); + _33 = fieldNameC, + _34); class I { constructor() { this["property2"] = 2; - this[Symbol.iterator] = null; + this[_36] = null; this["property4"] = 2; - this[Symbol.match] = null; - this[_12] = null; - this[_15] = null; + this[_37] = null; + this[_39] = null; + this[_42] = null; } - [(foo(), _11 = foo(), _12 = foo(), _13 = "some" + "method")]() { } - [(_14 = fieldNameB, "some" + "method2")]() { } + [(_35 = Symbol.toStringTag, _36 = Symbol.iterator, Symbol.isConcatSpreadable, _37 = Symbol.match, foo(), _38 = foo(), _39 = foo(), _40 = "some" + "method")]() { } + [(_41 = fieldNameB, "some" + "method2")]() { } } -_15 = fieldNameC; +_42 = fieldNameC; __decorate([ x ], I.prototype, "property", void 0); __decorate([ x -], I.prototype, Symbol.toStringTag, void 0); +], I.prototype, _35, void 0); __decorate([ x ], I.prototype, "property2", void 0); __decorate([ x -], I.prototype, Symbol.iterator, void 0); +], I.prototype, _36, void 0); __decorate([ x -], I.prototype, _11, void 0); +], I.prototype, _38, void 0); __decorate([ x -], I.prototype, _12, void 0); +], I.prototype, _39, void 0); __decorate([ x -], I.prototype, _13, null); +], I.prototype, _40, null); __decorate([ x -], I.prototype, _14, void 0); +], I.prototype, _41, void 0); __decorate([ x -], I.prototype, _15, void 0); -void (_21 = class J { +], I.prototype, _42, void 0); +void (_51 = class J { constructor() { this["property2"] = 2; - this[Symbol.iterator] = null; + this[_44] = null; this["property4"] = 2; - this[Symbol.match] = null; - this[_17] = null; - this[_20] = null; + this[_45] = null; + this[_47] = null; + this[_50] = null; } - [(foo(), _16 = foo(), _17 = foo(), _18 = "some" + "method")]() { } - [(_19 = fieldNameB, "some" + "method2")]() { } + [(_43 = Symbol.toStringTag, _44 = Symbol.iterator, Symbol.isConcatSpreadable, _45 = Symbol.match, foo(), _46 = foo(), _47 = foo(), _48 = "some" + "method")]() { } + [(_49 = fieldNameB, "some" + "method2")]() { } }, - _20 = fieldNameC, - _21); + _50 = fieldNameC, + _51); diff --git a/tests/baselines/reference/decoratorsOnComputedProperties.types b/tests/baselines/reference/decoratorsOnComputedProperties.types index efbf9c5d2631b..a95abf1ffcbcd 100644 --- a/tests/baselines/reference/decoratorsOnComputedProperties.types +++ b/tests/baselines/reference/decoratorsOnComputedProperties.types @@ -39,9 +39,9 @@ class A { @x [Symbol.toStringTag]: any; >x : (o: object, k: string | number | symbol) => void >[Symbol.toStringTag] : any ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol @x ["property2"]: any = 2; >x : (o: object, k: string | number | symbol) => void @@ -52,9 +52,9 @@ class A { @x [Symbol.iterator]: any = null; >x : (o: object, k: string | number | symbol) => void >[Symbol.iterator] : any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >null : null ["property3"]: any; @@ -63,9 +63,9 @@ class A { [Symbol.isConcatSpreadable]: any; >[Symbol.isConcatSpreadable] : any ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol ["property4"]: any = 2; >["property4"] : any @@ -74,9 +74,9 @@ class A { [Symbol.match]: any = null; >[Symbol.match] : any ->Symbol.match : symbol +>Symbol.match : unique symbol >Symbol : SymbolConstructor ->match : symbol +>match : unique symbol >null : null [foo()]: any; @@ -126,9 +126,9 @@ void class B { @x [Symbol.toStringTag]: any; >x : (o: object, k: string | number | symbol) => void >[Symbol.toStringTag] : any ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol @x ["property2"]: any = 2; >x : (o: object, k: string | number | symbol) => void @@ -139,9 +139,9 @@ void class B { @x [Symbol.iterator]: any = null; >x : (o: object, k: string | number | symbol) => void >[Symbol.iterator] : any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >null : null ["property3"]: any; @@ -150,9 +150,9 @@ void class B { [Symbol.isConcatSpreadable]: any; >[Symbol.isConcatSpreadable] : any ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol ["property4"]: any = 2; >["property4"] : any @@ -161,9 +161,9 @@ void class B { [Symbol.match]: any = null; >[Symbol.match] : any ->Symbol.match : symbol +>Symbol.match : unique symbol >Symbol : SymbolConstructor ->match : symbol +>match : unique symbol >null : null [foo()]: any; @@ -212,9 +212,9 @@ class C { @x [Symbol.toStringTag]: any; >x : (o: object, k: string | number | symbol) => void >[Symbol.toStringTag] : any ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol @x ["property2"]: any = 2; >x : (o: object, k: string | number | symbol) => void @@ -225,9 +225,9 @@ class C { @x [Symbol.iterator]: any = null; >x : (o: object, k: string | number | symbol) => void >[Symbol.iterator] : any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >null : null ["property3"]: any; @@ -236,9 +236,9 @@ class C { [Symbol.isConcatSpreadable]: any; >[Symbol.isConcatSpreadable] : any ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol ["property4"]: any = 2; >["property4"] : any @@ -247,9 +247,9 @@ class C { [Symbol.match]: any = null; >[Symbol.match] : any ->Symbol.match : symbol +>Symbol.match : unique symbol >Symbol : SymbolConstructor ->match : symbol +>match : unique symbol >null : null [foo()]: any; @@ -305,9 +305,9 @@ void class D { @x [Symbol.toStringTag]: any; >x : (o: object, k: string | number | symbol) => void >[Symbol.toStringTag] : any ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol @x ["property2"]: any = 2; >x : (o: object, k: string | number | symbol) => void @@ -318,9 +318,9 @@ void class D { @x [Symbol.iterator]: any = null; >x : (o: object, k: string | number | symbol) => void >[Symbol.iterator] : any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >null : null ["property3"]: any; @@ -329,9 +329,9 @@ void class D { [Symbol.isConcatSpreadable]: any; >[Symbol.isConcatSpreadable] : any ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol ["property4"]: any = 2; >["property4"] : any @@ -340,9 +340,9 @@ void class D { [Symbol.match]: any = null; >[Symbol.match] : any ->Symbol.match : symbol +>Symbol.match : unique symbol >Symbol : SymbolConstructor ->match : symbol +>match : unique symbol >null : null [foo()]: any; @@ -397,9 +397,9 @@ class E { @x [Symbol.toStringTag]: any; >x : (o: object, k: string | number | symbol) => void >[Symbol.toStringTag] : any ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol @x ["property2"]: any = 2; >x : (o: object, k: string | number | symbol) => void @@ -410,9 +410,9 @@ class E { @x [Symbol.iterator]: any = null; >x : (o: object, k: string | number | symbol) => void >[Symbol.iterator] : any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >null : null ["property3"]: any; @@ -421,9 +421,9 @@ class E { [Symbol.isConcatSpreadable]: any; >[Symbol.isConcatSpreadable] : any ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol ["property4"]: any = 2; >["property4"] : any @@ -432,9 +432,9 @@ class E { [Symbol.match]: any = null; >[Symbol.match] : any ->Symbol.match : symbol +>Symbol.match : unique symbol >Symbol : SymbolConstructor ->match : symbol +>match : unique symbol >null : null [foo()]: any; @@ -490,9 +490,9 @@ void class F { @x [Symbol.toStringTag]: any; >x : (o: object, k: string | number | symbol) => void >[Symbol.toStringTag] : any ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol @x ["property2"]: any = 2; >x : (o: object, k: string | number | symbol) => void @@ -503,9 +503,9 @@ void class F { @x [Symbol.iterator]: any = null; >x : (o: object, k: string | number | symbol) => void >[Symbol.iterator] : any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >null : null ["property3"]: any; @@ -514,9 +514,9 @@ void class F { [Symbol.isConcatSpreadable]: any; >[Symbol.isConcatSpreadable] : any ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol ["property4"]: any = 2; >["property4"] : any @@ -525,9 +525,9 @@ void class F { [Symbol.match]: any = null; >[Symbol.match] : any ->Symbol.match : symbol +>Symbol.match : unique symbol >Symbol : SymbolConstructor ->match : symbol +>match : unique symbol >null : null [foo()]: any; @@ -582,9 +582,9 @@ class G { @x [Symbol.toStringTag]: any; >x : (o: object, k: string | number | symbol) => void >[Symbol.toStringTag] : any ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol @x ["property2"]: any = 2; >x : (o: object, k: string | number | symbol) => void @@ -595,9 +595,9 @@ class G { @x [Symbol.iterator]: any = null; >x : (o: object, k: string | number | symbol) => void >[Symbol.iterator] : any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >null : null ["property3"]: any; @@ -606,9 +606,9 @@ class G { [Symbol.isConcatSpreadable]: any; >[Symbol.isConcatSpreadable] : any ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol ["property4"]: any = 2; >["property4"] : any @@ -617,9 +617,9 @@ class G { [Symbol.match]: any = null; >[Symbol.match] : any ->Symbol.match : symbol +>Symbol.match : unique symbol >Symbol : SymbolConstructor ->match : symbol +>match : unique symbol >null : null [foo()]: any; @@ -681,9 +681,9 @@ void class H { @x [Symbol.toStringTag]: any; >x : (o: object, k: string | number | symbol) => void >[Symbol.toStringTag] : any ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol @x ["property2"]: any = 2; >x : (o: object, k: string | number | symbol) => void @@ -694,9 +694,9 @@ void class H { @x [Symbol.iterator]: any = null; >x : (o: object, k: string | number | symbol) => void >[Symbol.iterator] : any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >null : null ["property3"]: any; @@ -705,9 +705,9 @@ void class H { [Symbol.isConcatSpreadable]: any; >[Symbol.isConcatSpreadable] : any ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol ["property4"]: any = 2; >["property4"] : any @@ -716,9 +716,9 @@ void class H { [Symbol.match]: any = null; >[Symbol.match] : any ->Symbol.match : symbol +>Symbol.match : unique symbol >Symbol : SymbolConstructor ->match : symbol +>match : unique symbol >null : null [foo()]: any; @@ -779,9 +779,9 @@ class I { @x [Symbol.toStringTag]: any; >x : (o: object, k: string | number | symbol) => void >[Symbol.toStringTag] : any ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol @x ["property2"]: any = 2; >x : (o: object, k: string | number | symbol) => void @@ -792,9 +792,9 @@ class I { @x [Symbol.iterator]: any = null; >x : (o: object, k: string | number | symbol) => void >[Symbol.iterator] : any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >null : null ["property3"]: any; @@ -803,9 +803,9 @@ class I { [Symbol.isConcatSpreadable]: any; >[Symbol.isConcatSpreadable] : any ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol ["property4"]: any = 2; >["property4"] : any @@ -814,9 +814,9 @@ class I { [Symbol.match]: any = null; >[Symbol.match] : any ->Symbol.match : symbol +>Symbol.match : unique symbol >Symbol : SymbolConstructor ->match : symbol +>match : unique symbol >null : null [foo()]: any; @@ -879,9 +879,9 @@ void class J { @x [Symbol.toStringTag]: any; >x : (o: object, k: string | number | symbol) => void >[Symbol.toStringTag] : any ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol @x ["property2"]: any = 2; >x : (o: object, k: string | number | symbol) => void @@ -892,9 +892,9 @@ void class J { @x [Symbol.iterator]: any = null; >x : (o: object, k: string | number | symbol) => void >[Symbol.iterator] : any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >null : null ["property3"]: any; @@ -903,9 +903,9 @@ void class J { [Symbol.isConcatSpreadable]: any; >[Symbol.isConcatSpreadable] : any ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol ["property4"]: any = 2; >["property4"] : any @@ -914,9 +914,9 @@ void class J { [Symbol.match]: any = null; >[Symbol.match] : any ->Symbol.match : symbol +>Symbol.match : unique symbol >Symbol : SymbolConstructor ->match : symbol +>match : unique symbol >null : null [foo()]: any; diff --git a/tests/baselines/reference/destructuredLateBoundNameHasCorrectTypes.types b/tests/baselines/reference/destructuredLateBoundNameHasCorrectTypes.types index 8d24b45e0ec0f..146aa7a32957d 100644 --- a/tests/baselines/reference/destructuredLateBoundNameHasCorrectTypes.types +++ b/tests/baselines/reference/destructuredLateBoundNameHasCorrectTypes.types @@ -1,8 +1,8 @@ === tests/cases/compiler/destructuredLateBoundNameHasCorrectTypes.ts === let { [Symbol.iterator]: destructured } = []; ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >destructured : () => IterableIterator >[] : undefined[] diff --git a/tests/baselines/reference/es5-asyncFunctionObjectLiterals.types b/tests/baselines/reference/es5-asyncFunctionObjectLiterals.types index b594e1ba35ad1..24ad1c9f28cc3 100644 --- a/tests/baselines/reference/es5-asyncFunctionObjectLiterals.types +++ b/tests/baselines/reference/es5-asyncFunctionObjectLiterals.types @@ -51,9 +51,9 @@ async function objectLiteral2() { >objectLiteral2 : () => Promise x = { ->x = { [await a]: y, b: z } : { [x: number]: any; b: any; } +>x = { [await a]: y, b: z } : { [x: string]: any; b: any; } >x : any ->{ [await a]: y, b: z } : { [x: number]: any; b: any; } +>{ [await a]: y, b: z } : { [x: string]: any; b: any; } [await a]: y, >[await a] : any @@ -72,9 +72,9 @@ async function objectLiteral3() { >objectLiteral3 : () => Promise x = { ->x = { [a]: await y, b: z } : { [x: number]: any; b: any; } +>x = { [a]: await y, b: z } : { [x: string]: any; b: any; } >x : any ->{ [a]: await y, b: z } : { [x: number]: any; b: any; } +>{ [a]: await y, b: z } : { [x: string]: any; b: any; } [a]: await y, >[a] : any @@ -93,9 +93,9 @@ async function objectLiteral4() { >objectLiteral4 : () => Promise x = { ->x = { a: await y, [b]: z } : { [x: number]: any; a: any; } +>x = { a: await y, [b]: z } : { [x: string]: any; a: any; } >x : any ->{ a: await y, [b]: z } : { [x: number]: any; a: any; } +>{ a: await y, [b]: z } : { [x: string]: any; a: any; } a: await y, >a : any @@ -114,9 +114,9 @@ async function objectLiteral5() { >objectLiteral5 : () => Promise x = { ->x = { a: y, [await b]: z } : { [x: number]: any; a: any; } +>x = { a: y, [await b]: z } : { [x: string]: any; a: any; } >x : any ->{ a: y, [await b]: z } : { [x: number]: any; a: any; } +>{ a: y, [await b]: z } : { [x: string]: any; a: any; } a: y, >a : any @@ -135,9 +135,9 @@ async function objectLiteral6() { >objectLiteral6 : () => Promise x = { ->x = { a: y, [b]: await z } : { [x: number]: any; a: any; } +>x = { a: y, [b]: await z } : { [x: string]: any; a: any; } >x : any ->{ a: y, [b]: await z } : { [x: number]: any; a: any; } +>{ a: y, [b]: await z } : { [x: string]: any; a: any; } a: y, >a : any diff --git a/tests/baselines/reference/for-of15.types b/tests/baselines/reference/for-of15.types index 3ad50870a11ad..130e2c21c7203 100644 --- a/tests/baselines/reference/for-of15.types +++ b/tests/baselines/reference/for-of15.types @@ -10,9 +10,9 @@ class StringIterator { } [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of16.types b/tests/baselines/reference/for-of16.types index 0396cf215d288..2fb955fec59ff 100644 --- a/tests/baselines/reference/for-of16.types +++ b/tests/baselines/reference/for-of16.types @@ -4,9 +4,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of17.types b/tests/baselines/reference/for-of17.types index 98768f241bac6..be08586182507 100644 --- a/tests/baselines/reference/for-of17.types +++ b/tests/baselines/reference/for-of17.types @@ -20,9 +20,9 @@ class NumberIterator { } [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of18.types b/tests/baselines/reference/for-of18.types index de784f5ec0d05..643afccd73745 100644 --- a/tests/baselines/reference/for-of18.types +++ b/tests/baselines/reference/for-of18.types @@ -20,9 +20,9 @@ class StringIterator { } [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of19.types b/tests/baselines/reference/for-of19.types index 2f9620e45aa8e..04a7180dfad90 100644 --- a/tests/baselines/reference/for-of19.types +++ b/tests/baselines/reference/for-of19.types @@ -24,9 +24,9 @@ class FooIterator { } [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of20.types b/tests/baselines/reference/for-of20.types index d94c056899237..1261375e897c8 100644 --- a/tests/baselines/reference/for-of20.types +++ b/tests/baselines/reference/for-of20.types @@ -24,9 +24,9 @@ class FooIterator { } [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of21.types b/tests/baselines/reference/for-of21.types index fa6a26466d412..e499da668650d 100644 --- a/tests/baselines/reference/for-of21.types +++ b/tests/baselines/reference/for-of21.types @@ -24,9 +24,9 @@ class FooIterator { } [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of22.types b/tests/baselines/reference/for-of22.types index 7a6da8a8f604c..524aafb6c6f07 100644 --- a/tests/baselines/reference/for-of22.types +++ b/tests/baselines/reference/for-of22.types @@ -24,9 +24,9 @@ class FooIterator { } [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of23.types b/tests/baselines/reference/for-of23.types index a88b5162b503d..ca817cb7625af 100644 --- a/tests/baselines/reference/for-of23.types +++ b/tests/baselines/reference/for-of23.types @@ -24,9 +24,9 @@ class FooIterator { } [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of25.types b/tests/baselines/reference/for-of25.types index 5cc40748bb071..3eb43b9bf7325 100644 --- a/tests/baselines/reference/for-of25.types +++ b/tests/baselines/reference/for-of25.types @@ -4,9 +4,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return x; >x : any diff --git a/tests/baselines/reference/for-of26.types b/tests/baselines/reference/for-of26.types index 5209b1856b38f..bfe34a0488d95 100644 --- a/tests/baselines/reference/for-of26.types +++ b/tests/baselines/reference/for-of26.types @@ -10,9 +10,9 @@ class StringIterator { } [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of27.js b/tests/baselines/reference/for-of27.js index 6adc66e241b2b..0845c03bc64b8 100644 --- a/tests/baselines/reference/for-of27.js +++ b/tests/baselines/reference/for-of27.js @@ -8,4 +8,5 @@ for (var v of new StringIterator) { } //// [for-of27.js] class StringIterator { } +Symbol.iterator; for (var v of new StringIterator) { } diff --git a/tests/baselines/reference/for-of27.types b/tests/baselines/reference/for-of27.types index c72d306c18765..f3db042cdbf00 100644 --- a/tests/baselines/reference/for-of27.types +++ b/tests/baselines/reference/for-of27.types @@ -4,9 +4,9 @@ class StringIterator { [Symbol.iterator]: any; >[Symbol.iterator] : any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol } for (var v of new StringIterator) { } diff --git a/tests/baselines/reference/for-of28.types b/tests/baselines/reference/for-of28.types index d1f95753722a8..d9e2099119fd9 100644 --- a/tests/baselines/reference/for-of28.types +++ b/tests/baselines/reference/for-of28.types @@ -7,9 +7,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of29.types b/tests/baselines/reference/for-of29.types index 23d7f986add76..dde2bbee81e99 100644 --- a/tests/baselines/reference/for-of29.types +++ b/tests/baselines/reference/for-of29.types @@ -4,9 +4,9 @@ var iterableWithOptionalIterator: { [Symbol.iterator]?(): Iterator >[Symbol.iterator] : () => Iterator ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >Iterator : Iterator }; diff --git a/tests/baselines/reference/for-of30.types b/tests/baselines/reference/for-of30.types index bd369223d7f5f..861ecdc15c55e 100644 --- a/tests/baselines/reference/for-of30.types +++ b/tests/baselines/reference/for-of30.types @@ -24,9 +24,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of31.types b/tests/baselines/reference/for-of31.types index 843ce928c44e1..a01708c377a15 100644 --- a/tests/baselines/reference/for-of31.types +++ b/tests/baselines/reference/for-of31.types @@ -17,9 +17,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of33.types b/tests/baselines/reference/for-of33.types index 1410ee0653505..0b148994963c2 100644 --- a/tests/baselines/reference/for-of33.types +++ b/tests/baselines/reference/for-of33.types @@ -4,9 +4,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => any ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return v; >v : any diff --git a/tests/baselines/reference/for-of34.types b/tests/baselines/reference/for-of34.types index 5a4287e7843dd..5f5af23648b06 100644 --- a/tests/baselines/reference/for-of34.types +++ b/tests/baselines/reference/for-of34.types @@ -11,9 +11,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/for-of35.types b/tests/baselines/reference/for-of35.types index 0c80a6633b28a..701cced9157d3 100644 --- a/tests/baselines/reference/for-of35.types +++ b/tests/baselines/reference/for-of35.types @@ -20,9 +20,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/generatorES6_6.types b/tests/baselines/reference/generatorES6_6.types index 7306b6ed99ae4..501ac848e1a91 100644 --- a/tests/baselines/reference/generatorES6_6.types +++ b/tests/baselines/reference/generatorES6_6.types @@ -4,9 +4,9 @@ class C { *[Symbol.iterator]() { >[Symbol.iterator] : () => IterableIterator ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol let a = yield 1; >a : any diff --git a/tests/baselines/reference/generatorTypeCheck28.types b/tests/baselines/reference/generatorTypeCheck28.types index fcbae6b76c887..b102cb8d4ec96 100644 --- a/tests/baselines/reference/generatorTypeCheck28.types +++ b/tests/baselines/reference/generatorTypeCheck28.types @@ -10,9 +10,9 @@ function* g(): IterableIterator<(x: string) => number> { *[Symbol.iterator]() { >[Symbol.iterator] : () => IterableIterator<(x: string) => number> ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol yield x => x.length; >yield x => x.length : any diff --git a/tests/baselines/reference/generatorTypeCheck41.types b/tests/baselines/reference/generatorTypeCheck41.types index 5f20d01765582..0d0530945fbb6 100644 --- a/tests/baselines/reference/generatorTypeCheck41.types +++ b/tests/baselines/reference/generatorTypeCheck41.types @@ -3,8 +3,8 @@ function* g() { >g : () => IterableIterator let x = { ->x : { [x: number]: number; } ->{ [yield 0]: 0 } : { [x: number]: number; } +>x : { [x: string]: number; } +>{ [yield 0]: 0 } : { [x: string]: number; } [yield 0]: 0 >[yield 0] : number diff --git a/tests/baselines/reference/generatorTypeCheck42.types b/tests/baselines/reference/generatorTypeCheck42.types index 47d948739f10d..626da06b02d52 100644 --- a/tests/baselines/reference/generatorTypeCheck42.types +++ b/tests/baselines/reference/generatorTypeCheck42.types @@ -3,8 +3,8 @@ function* g() { >g : () => IterableIterator let x = { ->x : { [x: number]: () => void; } ->{ [yield 0]() { } } : { [x: number]: () => void; } +>x : { [x: string]: () => void; } +>{ [yield 0]() { } } : { [x: string]: () => void; } [yield 0]() { >[yield 0] : () => void diff --git a/tests/baselines/reference/generatorTypeCheck43.types b/tests/baselines/reference/generatorTypeCheck43.types index 298c631728ebb..8e5fd32408ba5 100644 --- a/tests/baselines/reference/generatorTypeCheck43.types +++ b/tests/baselines/reference/generatorTypeCheck43.types @@ -3,8 +3,8 @@ function* g() { >g : () => IterableIterator let x = { ->x : { [x: number]: () => IterableIterator; } ->{ *[yield 0]() { } } : { [x: number]: () => IterableIterator; } +>x : { [x: string]: () => IterableIterator; } +>{ *[yield 0]() { } } : { [x: string]: () => IterableIterator; } *[yield 0]() { >[yield 0] : () => IterableIterator diff --git a/tests/baselines/reference/generatorTypeCheck44.types b/tests/baselines/reference/generatorTypeCheck44.types index 38b335f1ab46c..a21f0569987cc 100644 --- a/tests/baselines/reference/generatorTypeCheck44.types +++ b/tests/baselines/reference/generatorTypeCheck44.types @@ -3,8 +3,8 @@ function* g() { >g : () => IterableIterator let x = { ->x : { [x: number]: number; } ->{ get [yield 0]() { return 0; } } : { [x: number]: number; } +>x : { [x: string]: number; } +>{ get [yield 0]() { return 0; } } : { [x: string]: number; } get [yield 0]() { >[yield 0] : number diff --git a/tests/baselines/reference/generatorTypeCheck46.types b/tests/baselines/reference/generatorTypeCheck46.types index ea96133000c31..08b2af1adb1df 100644 --- a/tests/baselines/reference/generatorTypeCheck46.types +++ b/tests/baselines/reference/generatorTypeCheck46.types @@ -28,9 +28,9 @@ foo("", function* () { *[Symbol.iterator]() { >[Symbol.iterator] : () => IterableIterator<(x: string) => number> ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol yield x => x.length >yield x => x.length : any diff --git a/tests/baselines/reference/intersectionTypeInference3.types b/tests/baselines/reference/intersectionTypeInference3.types index 9af8eaf6d0354..c6a471cc27338 100644 --- a/tests/baselines/reference/intersectionTypeInference3.types +++ b/tests/baselines/reference/intersectionTypeInference3.types @@ -9,9 +9,9 @@ type Nominal = Type & { [Symbol.species]: Kind; >[Symbol.species] : Kind ->Symbol.species : symbol +>Symbol.species : unique symbol >Symbol : SymbolConstructor ->species : symbol +>species : unique symbol >Kind : Kind }; diff --git a/tests/baselines/reference/invalidNewTarget.es5.types b/tests/baselines/reference/invalidNewTarget.es5.types index 5a7703b684462..e3cc854aaeb94 100644 --- a/tests/baselines/reference/invalidNewTarget.es5.types +++ b/tests/baselines/reference/invalidNewTarget.es5.types @@ -73,8 +73,8 @@ class C { } const O = { ->O : { [x: number]: any; k(): any; readonly l: any; m: any; n: any; } ->{ [new.target]: undefined, k() { return new.target; }, get l() { return new.target; }, set m(_) { _ = new.target; }, n: new.target,} : { [x: number]: undefined; k(): any; readonly l: any; m: any; n: any; } +>O : { [x: string]: any; k(): any; readonly l: any; m: any; n: any; } +>{ [new.target]: undefined, k() { return new.target; }, get l() { return new.target; }, set m(_) { _ = new.target; }, n: new.target,} : { [x: string]: any; k(): any; readonly l: any; m: any; n: any; } [new.target]: undefined, >[new.target] : undefined diff --git a/tests/baselines/reference/invalidNewTarget.es6.types b/tests/baselines/reference/invalidNewTarget.es6.types index a7690f4cbbca8..bb9dfef0bf66d 100644 --- a/tests/baselines/reference/invalidNewTarget.es6.types +++ b/tests/baselines/reference/invalidNewTarget.es6.types @@ -73,8 +73,8 @@ class C { } const O = { ->O : { [x: number]: any; k(): any; readonly l: any; m: any; n: any; } ->{ [new.target]: undefined, k() { return new.target; }, get l() { return new.target; }, set m(_) { _ = new.target; }, n: new.target,} : { [x: number]: undefined; k(): any; readonly l: any; m: any; n: any; } +>O : { [x: string]: any; k(): any; readonly l: any; m: any; n: any; } +>{ [new.target]: undefined, k() { return new.target; }, get l() { return new.target; }, set m(_) { _ = new.target; }, n: new.target,} : { [x: string]: any; k(): any; readonly l: any; m: any; n: any; } [new.target]: undefined, >[new.target] : undefined diff --git a/tests/baselines/reference/iterableArrayPattern1.types b/tests/baselines/reference/iterableArrayPattern1.types index 8bdf0ebc6ed15..e9dde480d4749 100644 --- a/tests/baselines/reference/iterableArrayPattern1.types +++ b/tests/baselines/reference/iterableArrayPattern1.types @@ -22,9 +22,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern10.types b/tests/baselines/reference/iterableArrayPattern10.types index 2ae11652898da..3f431ac7850b0 100644 --- a/tests/baselines/reference/iterableArrayPattern10.types +++ b/tests/baselines/reference/iterableArrayPattern10.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern11.types b/tests/baselines/reference/iterableArrayPattern11.types index 6c9f384aa4fe3..fe7cdd293044b 100644 --- a/tests/baselines/reference/iterableArrayPattern11.types +++ b/tests/baselines/reference/iterableArrayPattern11.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern12.types b/tests/baselines/reference/iterableArrayPattern12.types index d55d2f2fecbd6..0280487bbc58f 100644 --- a/tests/baselines/reference/iterableArrayPattern12.types +++ b/tests/baselines/reference/iterableArrayPattern12.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern13.types b/tests/baselines/reference/iterableArrayPattern13.types index d73f5cf0ab8de..f6e14c16392ef 100644 --- a/tests/baselines/reference/iterableArrayPattern13.types +++ b/tests/baselines/reference/iterableArrayPattern13.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern14.types b/tests/baselines/reference/iterableArrayPattern14.types index b16b7e39c12cb..d364cf7dc8fcf 100644 --- a/tests/baselines/reference/iterableArrayPattern14.types +++ b/tests/baselines/reference/iterableArrayPattern14.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern15.types b/tests/baselines/reference/iterableArrayPattern15.types index 7c553927a911a..45cac722e1e1c 100644 --- a/tests/baselines/reference/iterableArrayPattern15.types +++ b/tests/baselines/reference/iterableArrayPattern15.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern16.types b/tests/baselines/reference/iterableArrayPattern16.types index a2b0c9a0b6761..b62069ba9ada8 100644 --- a/tests/baselines/reference/iterableArrayPattern16.types +++ b/tests/baselines/reference/iterableArrayPattern16.types @@ -45,9 +45,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this @@ -77,9 +77,9 @@ class FooIteratorIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern17.types b/tests/baselines/reference/iterableArrayPattern17.types index 3163269bf8b1a..71db05f28e91a 100644 --- a/tests/baselines/reference/iterableArrayPattern17.types +++ b/tests/baselines/reference/iterableArrayPattern17.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern18.types b/tests/baselines/reference/iterableArrayPattern18.types index 1a84ee4af96d4..cdde399d46ec5 100644 --- a/tests/baselines/reference/iterableArrayPattern18.types +++ b/tests/baselines/reference/iterableArrayPattern18.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern19.types b/tests/baselines/reference/iterableArrayPattern19.types index dfd45e4a189e0..029dbfdb0b775 100644 --- a/tests/baselines/reference/iterableArrayPattern19.types +++ b/tests/baselines/reference/iterableArrayPattern19.types @@ -32,9 +32,9 @@ class FooArrayIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern2.types b/tests/baselines/reference/iterableArrayPattern2.types index 2dfab111579db..e39bbdd7be709 100644 --- a/tests/baselines/reference/iterableArrayPattern2.types +++ b/tests/baselines/reference/iterableArrayPattern2.types @@ -22,9 +22,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern20.types b/tests/baselines/reference/iterableArrayPattern20.types index 542402f741a59..55f4e221ec7a6 100644 --- a/tests/baselines/reference/iterableArrayPattern20.types +++ b/tests/baselines/reference/iterableArrayPattern20.types @@ -32,9 +32,9 @@ class FooArrayIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern3.types b/tests/baselines/reference/iterableArrayPattern3.types index 7d79b7e204613..a7ac464ab8b99 100644 --- a/tests/baselines/reference/iterableArrayPattern3.types +++ b/tests/baselines/reference/iterableArrayPattern3.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern4.types b/tests/baselines/reference/iterableArrayPattern4.types index ece3b235dc437..c1bec39d3af41 100644 --- a/tests/baselines/reference/iterableArrayPattern4.types +++ b/tests/baselines/reference/iterableArrayPattern4.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern5.types b/tests/baselines/reference/iterableArrayPattern5.types index 708d6c7631afc..57c5a2767f5ae 100644 --- a/tests/baselines/reference/iterableArrayPattern5.types +++ b/tests/baselines/reference/iterableArrayPattern5.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern6.types b/tests/baselines/reference/iterableArrayPattern6.types index c465c02ea4494..6ee03db2d997e 100644 --- a/tests/baselines/reference/iterableArrayPattern6.types +++ b/tests/baselines/reference/iterableArrayPattern6.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern7.types b/tests/baselines/reference/iterableArrayPattern7.types index 4d00cb6d61019..05a70c9ab9850 100644 --- a/tests/baselines/reference/iterableArrayPattern7.types +++ b/tests/baselines/reference/iterableArrayPattern7.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern8.types b/tests/baselines/reference/iterableArrayPattern8.types index 7614b15b05494..046a4bab5fcad 100644 --- a/tests/baselines/reference/iterableArrayPattern8.types +++ b/tests/baselines/reference/iterableArrayPattern8.types @@ -31,9 +31,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iterableArrayPattern9.types b/tests/baselines/reference/iterableArrayPattern9.types index ca9ced3e787d9..94a4e33ea69f8 100644 --- a/tests/baselines/reference/iterableArrayPattern9.types +++ b/tests/baselines/reference/iterableArrayPattern9.types @@ -38,9 +38,9 @@ class FooIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInArray.types b/tests/baselines/reference/iteratorSpreadInArray.types index 1b0f6954f71b2..c71ad753d1ba5 100644 --- a/tests/baselines/reference/iteratorSpreadInArray.types +++ b/tests/baselines/reference/iteratorSpreadInArray.types @@ -22,9 +22,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInArray10.types b/tests/baselines/reference/iteratorSpreadInArray10.types index dd6bec4bbbd53..364202ec3ec94 100644 --- a/tests/baselines/reference/iteratorSpreadInArray10.types +++ b/tests/baselines/reference/iteratorSpreadInArray10.types @@ -4,9 +4,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInArray2.types b/tests/baselines/reference/iteratorSpreadInArray2.types index 12eff588816c1..e05f8d4b0bc2b 100644 --- a/tests/baselines/reference/iteratorSpreadInArray2.types +++ b/tests/baselines/reference/iteratorSpreadInArray2.types @@ -22,9 +22,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this @@ -53,9 +53,9 @@ class NumberIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInArray3.types b/tests/baselines/reference/iteratorSpreadInArray3.types index 5c32643e302b6..c13d41bd43c68 100644 --- a/tests/baselines/reference/iteratorSpreadInArray3.types +++ b/tests/baselines/reference/iteratorSpreadInArray3.types @@ -22,9 +22,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInArray4.types b/tests/baselines/reference/iteratorSpreadInArray4.types index a6c8a53d320f8..9c5ae99689154 100644 --- a/tests/baselines/reference/iteratorSpreadInArray4.types +++ b/tests/baselines/reference/iteratorSpreadInArray4.types @@ -22,9 +22,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInArray5.types b/tests/baselines/reference/iteratorSpreadInArray5.types index eac7f537f357b..6163460fece06 100644 --- a/tests/baselines/reference/iteratorSpreadInArray5.types +++ b/tests/baselines/reference/iteratorSpreadInArray5.types @@ -22,9 +22,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInArray6.types b/tests/baselines/reference/iteratorSpreadInArray6.types index b964fdbca1304..e97a3f778d856 100644 --- a/tests/baselines/reference/iteratorSpreadInArray6.types +++ b/tests/baselines/reference/iteratorSpreadInArray6.types @@ -22,9 +22,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInArray7.types b/tests/baselines/reference/iteratorSpreadInArray7.types index 9d3cf2cfa7ed6..11dfaeb872c00 100644 --- a/tests/baselines/reference/iteratorSpreadInArray7.types +++ b/tests/baselines/reference/iteratorSpreadInArray7.types @@ -22,9 +22,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInArray9.types b/tests/baselines/reference/iteratorSpreadInArray9.types index 82e4064526afa..1cac23527eae5 100644 --- a/tests/baselines/reference/iteratorSpreadInArray9.types +++ b/tests/baselines/reference/iteratorSpreadInArray9.types @@ -18,9 +18,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall.types b/tests/baselines/reference/iteratorSpreadInCall.types index fc971f24f5e89..9d369c853f89c 100644 --- a/tests/baselines/reference/iteratorSpreadInCall.types +++ b/tests/baselines/reference/iteratorSpreadInCall.types @@ -26,9 +26,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall10.types b/tests/baselines/reference/iteratorSpreadInCall10.types index 373f5c24a0af9..951965a1546a3 100644 --- a/tests/baselines/reference/iteratorSpreadInCall10.types +++ b/tests/baselines/reference/iteratorSpreadInCall10.types @@ -31,9 +31,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall11.types b/tests/baselines/reference/iteratorSpreadInCall11.types index 2407ba1c4a56a..09d3b759ec6a9 100644 --- a/tests/baselines/reference/iteratorSpreadInCall11.types +++ b/tests/baselines/reference/iteratorSpreadInCall11.types @@ -31,9 +31,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall12.types b/tests/baselines/reference/iteratorSpreadInCall12.types index e346ea0f358ce..0d687e18c262f 100644 --- a/tests/baselines/reference/iteratorSpreadInCall12.types +++ b/tests/baselines/reference/iteratorSpreadInCall12.types @@ -31,9 +31,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this @@ -62,9 +62,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall2.types b/tests/baselines/reference/iteratorSpreadInCall2.types index 4ffcf0b01de97..94ad7d780b682 100644 --- a/tests/baselines/reference/iteratorSpreadInCall2.types +++ b/tests/baselines/reference/iteratorSpreadInCall2.types @@ -26,9 +26,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall3.types b/tests/baselines/reference/iteratorSpreadInCall3.types index 8c629fc2d7623..570fbd6892a56 100644 --- a/tests/baselines/reference/iteratorSpreadInCall3.types +++ b/tests/baselines/reference/iteratorSpreadInCall3.types @@ -26,9 +26,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall4.types b/tests/baselines/reference/iteratorSpreadInCall4.types index 56968f87094e1..2ac3d6b455391 100644 --- a/tests/baselines/reference/iteratorSpreadInCall4.types +++ b/tests/baselines/reference/iteratorSpreadInCall4.types @@ -27,9 +27,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall5.types b/tests/baselines/reference/iteratorSpreadInCall5.types index 5d70581cacb8c..c2f03f21f9afe 100644 --- a/tests/baselines/reference/iteratorSpreadInCall5.types +++ b/tests/baselines/reference/iteratorSpreadInCall5.types @@ -26,9 +26,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this @@ -57,9 +57,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall6.types b/tests/baselines/reference/iteratorSpreadInCall6.types index 6a040d25e6d15..98370183afc07 100644 --- a/tests/baselines/reference/iteratorSpreadInCall6.types +++ b/tests/baselines/reference/iteratorSpreadInCall6.types @@ -26,9 +26,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this @@ -57,9 +57,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall7.types b/tests/baselines/reference/iteratorSpreadInCall7.types index 953ee50c8d939..8746679bb499c 100644 --- a/tests/baselines/reference/iteratorSpreadInCall7.types +++ b/tests/baselines/reference/iteratorSpreadInCall7.types @@ -31,9 +31,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this @@ -62,9 +62,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall8.types b/tests/baselines/reference/iteratorSpreadInCall8.types index ea404bdde5bb7..7e4cd222fc526 100644 --- a/tests/baselines/reference/iteratorSpreadInCall8.types +++ b/tests/baselines/reference/iteratorSpreadInCall8.types @@ -31,9 +31,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this @@ -62,9 +62,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/iteratorSpreadInCall9.types b/tests/baselines/reference/iteratorSpreadInCall9.types index 270db4cd3cf94..78cb58a6a1c2b 100644 --- a/tests/baselines/reference/iteratorSpreadInCall9.types +++ b/tests/baselines/reference/iteratorSpreadInCall9.types @@ -31,9 +31,9 @@ class SymbolIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this @@ -62,9 +62,9 @@ class StringIterator { [Symbol.iterator]() { >[Symbol.iterator] : () => this ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol return this; >this : this diff --git a/tests/baselines/reference/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.types b/tests/baselines/reference/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.types index 6081b16c835d6..2101d8a93ac22 100644 --- a/tests/baselines/reference/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.types +++ b/tests/baselines/reference/modularizeLibrary_ErrorFromUsingES6FeaturesWithOnlyES5Lib.types @@ -60,8 +60,8 @@ Math.sign(1); // Using ES6 object var o = { ->o : { a: number; [Symbol.hasInstance](value: any): boolean; } ->{ a: 2, [Symbol.hasInstance](value: any) { return false; }} : { a: number; [Symbol.hasInstance](value: any): boolean; } +>o : { [x: string]: number | ((value: any) => boolean); a: number; } +>{ a: 2, [Symbol.hasInstance](value: any) { return false; }} : { [x: string]: number | ((value: any) => boolean); a: number; } a: 2, >a : number @@ -81,7 +81,7 @@ var o = { o.hasOwnProperty(Symbol.hasInstance); >o.hasOwnProperty(Symbol.hasInstance) : boolean >o.hasOwnProperty : (v: string | number | symbol) => boolean ->o : { a: number; [Symbol.hasInstance](value: any): boolean; } +>o : { [x: string]: number | ((value: any) => boolean); a: number; } >hasOwnProperty : (v: string | number | symbol) => boolean >Symbol.hasInstance : any >Symbol : any @@ -140,8 +140,8 @@ var s = Symbol(); // Using ES6 wellknown-symbol const o1 = { ->o1 : { [Symbol.hasInstance](value: any): boolean; } ->{ [Symbol.hasInstance](value: any) { return false; }} : { [Symbol.hasInstance](value: any): boolean; } +>o1 : { [x: string]: (value: any) => boolean; } +>{ [Symbol.hasInstance](value: any) { return false; }} : { [x: string]: (value: any) => boolean; } [Symbol.hasInstance](value: any) { >[Symbol.hasInstance] : (value: any) => boolean diff --git a/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions1.types b/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions1.types index 4bfd9b37441ad..4f3abf2a655a8 100644 --- a/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions1.types +++ b/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions1.types @@ -113,9 +113,9 @@ var o = { [Symbol.hasInstance](value: any) { >[Symbol.hasInstance] : (value: any) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >value : any return false; @@ -127,9 +127,9 @@ o.hasOwnProperty(Symbol.hasInstance); >o.hasOwnProperty : (v: string | number | symbol) => boolean >o : { a: number; [Symbol.hasInstance](value: any): boolean; } >hasOwnProperty : (v: string | number | symbol) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol // Using ES6 promise async function out() { @@ -221,9 +221,9 @@ const o1 = { [Symbol.hasInstance](value: any) { >[Symbol.hasInstance] : (value: any) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >value : any return false; diff --git a/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions2.types b/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions2.types index cfc9dd398232c..41f0942ca3082 100644 --- a/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions2.types +++ b/tests/baselines/reference/modularizeLibrary_NoErrorDuplicateLibOptions2.types @@ -113,9 +113,9 @@ var o = { [Symbol.hasInstance](value: any) { >[Symbol.hasInstance] : (value: any) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >value : any return false; @@ -127,9 +127,9 @@ o.hasOwnProperty(Symbol.hasInstance); >o.hasOwnProperty : (v: string | number | symbol) => boolean >o : { a: number; [Symbol.hasInstance](value: any): boolean; } >hasOwnProperty : (v: string | number | symbol) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol // Using ES6 promise async function out() { @@ -221,9 +221,9 @@ const o1 = { [Symbol.hasInstance](value: any) { >[Symbol.hasInstance] : (value: any) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >value : any return false; diff --git a/tests/baselines/reference/modularizeLibrary_TargetES5UsingES6Lib.types b/tests/baselines/reference/modularizeLibrary_TargetES5UsingES6Lib.types index f9203bbc639e4..db9ad465b2a95 100644 --- a/tests/baselines/reference/modularizeLibrary_TargetES5UsingES6Lib.types +++ b/tests/baselines/reference/modularizeLibrary_TargetES5UsingES6Lib.types @@ -113,9 +113,9 @@ var o = { [Symbol.hasInstance](value: any) { >[Symbol.hasInstance] : (value: any) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >value : any return false; @@ -127,9 +127,9 @@ o.hasOwnProperty(Symbol.hasInstance); >o.hasOwnProperty : (v: string | number | symbol) => boolean >o : { a: number; [Symbol.hasInstance](value: any): boolean; } >hasOwnProperty : (v: string | number | symbol) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol // Using ES6 promise async function out() { @@ -221,9 +221,9 @@ const o1 = { [Symbol.hasInstance](value: any) { >[Symbol.hasInstance] : (value: any) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >value : any return false; diff --git a/tests/baselines/reference/modularizeLibrary_TargetES6UsingES6Lib.types b/tests/baselines/reference/modularizeLibrary_TargetES6UsingES6Lib.types index f4eaba5875235..c1bab6bc537fc 100644 --- a/tests/baselines/reference/modularizeLibrary_TargetES6UsingES6Lib.types +++ b/tests/baselines/reference/modularizeLibrary_TargetES6UsingES6Lib.types @@ -68,9 +68,9 @@ var o = { [Symbol.hasInstance](value: any) { >[Symbol.hasInstance] : (value: any) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >value : any return false; @@ -82,9 +82,9 @@ o.hasOwnProperty(Symbol.hasInstance); >o.hasOwnProperty : (v: string | number | symbol) => boolean >o : { a: number; [Symbol.hasInstance](value: any): boolean; } >hasOwnProperty : (v: string | number | symbol) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol // Using Es6 proxy var t = {} @@ -144,9 +144,9 @@ const o1 = { [Symbol.hasInstance](value: any) { >[Symbol.hasInstance] : (value: any) => boolean ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >value : any return false; diff --git a/tests/baselines/reference/modularizeLibrary_UsingES5LibES6ArrayLibES6WellknownSymbolLib.types b/tests/baselines/reference/modularizeLibrary_UsingES5LibES6ArrayLibES6WellknownSymbolLib.types index caca4cf87599a..71fe2fd4f653d 100644 --- a/tests/baselines/reference/modularizeLibrary_UsingES5LibES6ArrayLibES6WellknownSymbolLib.types +++ b/tests/baselines/reference/modularizeLibrary_UsingES5LibES6ArrayLibES6WellknownSymbolLib.types @@ -30,8 +30,8 @@ a[Symbol.isConcatSpreadable] = false; >a[Symbol.isConcatSpreadable] = false : false >a[Symbol.isConcatSpreadable] : any >a : string[] ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol >false : false diff --git a/tests/baselines/reference/parser.asyncGenerators.classMethods.esnext.types b/tests/baselines/reference/parser.asyncGenerators.classMethods.esnext.types index 81636f0d9f351..d43b03ae27595 100644 --- a/tests/baselines/reference/parser.asyncGenerators.classMethods.esnext.types +++ b/tests/baselines/reference/parser.asyncGenerators.classMethods.esnext.types @@ -253,8 +253,8 @@ class C22 { >f : () => AsyncIterableIterator const x = { [yield]: 1 }; ->x : { [x: number]: number; } ->{ [yield]: 1 } : { [x: number]: number; } +>x : { [x: string]: number; } +>{ [yield]: 1 } : { [x: string]: number; } >[yield] : number >yield : any >1 : 1 diff --git a/tests/baselines/reference/parser.asyncGenerators.functionDeclarations.esnext.types b/tests/baselines/reference/parser.asyncGenerators.functionDeclarations.esnext.types index d1ec77dd6aef2..cd91c18050c2f 100644 --- a/tests/baselines/reference/parser.asyncGenerators.functionDeclarations.esnext.types +++ b/tests/baselines/reference/parser.asyncGenerators.functionDeclarations.esnext.types @@ -160,8 +160,8 @@ async function * f21() { >f21 : () => AsyncIterableIterator const x = { [yield]: 1 }; ->x : { [x: number]: number; } ->{ [yield]: 1 } : { [x: number]: number; } +>x : { [x: string]: number; } +>{ [yield]: 1 } : { [x: string]: number; } >[yield] : number >yield : any >1 : 1 diff --git a/tests/baselines/reference/parser.asyncGenerators.functionExpressions.esnext.types b/tests/baselines/reference/parser.asyncGenerators.functionExpressions.esnext.types index db905db6509ca..1bd68ae40d123 100644 --- a/tests/baselines/reference/parser.asyncGenerators.functionExpressions.esnext.types +++ b/tests/baselines/reference/parser.asyncGenerators.functionExpressions.esnext.types @@ -202,8 +202,8 @@ const f21 = async function *() { >async function *() { const x = { [yield]: 1 };} : () => AsyncIterableIterator const x = { [yield]: 1 }; ->x : { [x: number]: number; } ->{ [yield]: 1 } : { [x: number]: number; } +>x : { [x: string]: number; } +>{ [yield]: 1 } : { [x: string]: number; } >[yield] : number >yield : any >1 : 1 diff --git a/tests/baselines/reference/parser.asyncGenerators.objectLiteralMethods.esnext.types b/tests/baselines/reference/parser.asyncGenerators.objectLiteralMethods.esnext.types index 4b159f793fe42..cc4a83ec89670 100644 --- a/tests/baselines/reference/parser.asyncGenerators.objectLiteralMethods.esnext.types +++ b/tests/baselines/reference/parser.asyncGenerators.objectLiteralMethods.esnext.types @@ -267,8 +267,8 @@ const o21 = { >f : () => AsyncIterableIterator const x = { [yield]: 1 }; ->x : { [x: number]: number; } ->{ [yield]: 1 } : { [x: number]: number; } +>x : { [x: string]: number; } +>{ [yield]: 1 } : { [x: string]: number; } >[yield] : number >yield : any >1 : 1 diff --git a/tests/baselines/reference/parserComputedPropertyName1.types b/tests/baselines/reference/parserComputedPropertyName1.types index 229b345194efc..1b77ff7bb6067 100644 --- a/tests/baselines/reference/parserComputedPropertyName1.types +++ b/tests/baselines/reference/parserComputedPropertyName1.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName1.ts === var v = { [e] }; ->v : { [x: number]: any; } ->{ [e] } : { [x: number]: any; } +>v : { [x: string]: any; } +>{ [e] } : { [x: string]: any; } >[e] : any >e : any > : any diff --git a/tests/baselines/reference/parserComputedPropertyName17.types b/tests/baselines/reference/parserComputedPropertyName17.types index 141f36f9455ee..bfe61e79cab83 100644 --- a/tests/baselines/reference/parserComputedPropertyName17.types +++ b/tests/baselines/reference/parserComputedPropertyName17.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName17.ts === var v = { set [e](v) { } } ->v : { [x: number]: any; } ->{ set [e](v) { } } : { [x: number]: any; } +>v : { [x: string]: any; } +>{ set [e](v) { } } : { [x: string]: any; } >[e] : any >e : any >v : any diff --git a/tests/baselines/reference/parserComputedPropertyName2.types b/tests/baselines/reference/parserComputedPropertyName2.types index fedfb2ea33ff8..bc1600e4b2b08 100644 --- a/tests/baselines/reference/parserComputedPropertyName2.types +++ b/tests/baselines/reference/parserComputedPropertyName2.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName2.ts === var v = { [e]: 1 }; ->v : { [x: number]: number; } ->{ [e]: 1 } : { [x: number]: number; } +>v : { [x: string]: number; } +>{ [e]: 1 } : { [x: string]: number; } >[e] : number >e : any >1 : 1 diff --git a/tests/baselines/reference/parserComputedPropertyName3.types b/tests/baselines/reference/parserComputedPropertyName3.types index 7a9d4aff23248..981221459cac4 100644 --- a/tests/baselines/reference/parserComputedPropertyName3.types +++ b/tests/baselines/reference/parserComputedPropertyName3.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName3.ts === var v = { [e]() { } }; ->v : { [x: number]: () => void; } ->{ [e]() { } } : { [x: number]: () => void; } +>v : { [x: string]: () => void; } +>{ [e]() { } } : { [x: string]: () => void; } >[e] : () => void >e : any diff --git a/tests/baselines/reference/parserComputedPropertyName37.types b/tests/baselines/reference/parserComputedPropertyName37.types index c0ef9ee0eb3c3..145108c7d78cc 100644 --- a/tests/baselines/reference/parserComputedPropertyName37.types +++ b/tests/baselines/reference/parserComputedPropertyName37.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName37.ts === var v = { ->v : { [x: number]: number; } ->{ [public]: 0} : { [x: number]: number; } +>v : { [x: string]: number; } +>{ [public]: 0} : { [x: string]: number; } [public]: 0 >[public] : number diff --git a/tests/baselines/reference/parserComputedPropertyName4.types b/tests/baselines/reference/parserComputedPropertyName4.types index 66ac75b156b26..05065aee5a4d0 100644 --- a/tests/baselines/reference/parserComputedPropertyName4.types +++ b/tests/baselines/reference/parserComputedPropertyName4.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName4.ts === var v = { get [e]() { } }; ->v : { [x: number]: void; } ->{ get [e]() { } } : { [x: number]: void; } +>v : { [x: string]: void; } +>{ get [e]() { } } : { [x: string]: void; } >[e] : void >e : any diff --git a/tests/baselines/reference/parserComputedPropertyName5.types b/tests/baselines/reference/parserComputedPropertyName5.types index 383f590909fc2..6d5b6dbd23583 100644 --- a/tests/baselines/reference/parserComputedPropertyName5.types +++ b/tests/baselines/reference/parserComputedPropertyName5.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName5.ts === var v = { public get [e]() { } }; ->v : { [x: number]: void; } ->{ public get [e]() { } } : { [x: number]: void; } +>v : { [x: string]: void; } +>{ public get [e]() { } } : { [x: string]: void; } >[e] : void >e : any diff --git a/tests/baselines/reference/parserComputedPropertyName6.types b/tests/baselines/reference/parserComputedPropertyName6.types index c292156dce011..c15cefd59c2ee 100644 --- a/tests/baselines/reference/parserComputedPropertyName6.types +++ b/tests/baselines/reference/parserComputedPropertyName6.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript6/ComputedPropertyNames/parserComputedPropertyName6.ts === var v = { [e]: 1, [e + e]: 2 }; ->v : { [x: number]: number; } ->{ [e]: 1, [e + e]: 2 } : { [x: number]: number; } +>v : { [x: string]: number; } +>{ [e]: 1, [e + e]: 2 } : { [x: string]: number; } >[e] : number >e : any >1 : 1 diff --git a/tests/baselines/reference/parserES5ComputedPropertyName2.types b/tests/baselines/reference/parserES5ComputedPropertyName2.types index 6d40c5687e9a7..0aa59a0ccda28 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName2.types +++ b/tests/baselines/reference/parserES5ComputedPropertyName2.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName2.ts === var v = { [e]: 1 }; ->v : { [x: number]: number; } ->{ [e]: 1 } : { [x: number]: number; } +>v : { [x: string]: number; } +>{ [e]: 1 } : { [x: string]: number; } >[e] : number >e : any >1 : 1 diff --git a/tests/baselines/reference/parserES5ComputedPropertyName3.types b/tests/baselines/reference/parserES5ComputedPropertyName3.types index 012ebae6bbf3f..d40de1262582f 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName3.types +++ b/tests/baselines/reference/parserES5ComputedPropertyName3.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName3.ts === var v = { [e]() { } }; ->v : { [x: number]: () => void; } ->{ [e]() { } } : { [x: number]: () => void; } +>v : { [x: string]: () => void; } +>{ [e]() { } } : { [x: string]: () => void; } >[e] : () => void >e : any diff --git a/tests/baselines/reference/parserES5ComputedPropertyName4.types b/tests/baselines/reference/parserES5ComputedPropertyName4.types index 4e021729a7d8c..160885480944e 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName4.types +++ b/tests/baselines/reference/parserES5ComputedPropertyName4.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript5/ComputedPropertyNames/parserES5ComputedPropertyName4.ts === var v = { get [e]() { } }; ->v : { [x: number]: void; } ->{ get [e]() { } } : { [x: number]: void; } +>v : { [x: string]: void; } +>{ get [e]() { } } : { [x: string]: void; } >[e] : void >e : any diff --git a/tests/baselines/reference/parserES5SymbolProperty1.errors.txt b/tests/baselines/reference/parserES5SymbolProperty1.errors.txt index 1d7d361ef3a15..ee60b2c9eeb1f 100644 --- a/tests/baselines/reference/parserES5SymbolProperty1.errors.txt +++ b/tests/baselines/reference/parserES5SymbolProperty1.errors.txt @@ -1,9 +1,12 @@ +tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty1.ts(2,5): error TS1169: A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type. tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty1.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here. -==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty1.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty1.ts (2 errors) ==== interface I { [Symbol.iterator]: string; + ~~~~~~~~~~~~~~~~~ +!!! error TS1169: A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type. ~~~~~~ !!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5SymbolProperty2.errors.txt b/tests/baselines/reference/parserES5SymbolProperty2.errors.txt index 581f65b0a499b..48d36c7ca1764 100644 --- a/tests/baselines/reference/parserES5SymbolProperty2.errors.txt +++ b/tests/baselines/reference/parserES5SymbolProperty2.errors.txt @@ -1,9 +1,12 @@ +tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty2.ts(2,5): error TS1169: A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type. tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty2.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here. -==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty2.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty2.ts (2 errors) ==== interface I { [Symbol.unscopables](): string; + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS1169: A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type. ~~~~~~ !!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5SymbolProperty3.errors.txt b/tests/baselines/reference/parserES5SymbolProperty3.errors.txt index 8db74c5125574..e1e5dc9638caf 100644 --- a/tests/baselines/reference/parserES5SymbolProperty3.errors.txt +++ b/tests/baselines/reference/parserES5SymbolProperty3.errors.txt @@ -1,9 +1,12 @@ +tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty3.ts(2,5): error TS1165: A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type. tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty3.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here. -==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty3.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty3.ts (2 errors) ==== declare class C { [Symbol.unscopables](): string; + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS1165: A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type. ~~~~~~ !!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5SymbolProperty4.errors.txt b/tests/baselines/reference/parserES5SymbolProperty4.errors.txt index 1fd929502e3a6..11c3d57381319 100644 --- a/tests/baselines/reference/parserES5SymbolProperty4.errors.txt +++ b/tests/baselines/reference/parserES5SymbolProperty4.errors.txt @@ -1,9 +1,12 @@ +tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty4.ts(2,5): error TS1166: A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type. tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty4.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here. -==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty4.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty4.ts (2 errors) ==== declare class C { [Symbol.isRegExp]: string; + ~~~~~~~~~~~~~~~~~ +!!! error TS1166: A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type. ~~~~~~ !!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5SymbolProperty5.errors.txt b/tests/baselines/reference/parserES5SymbolProperty5.errors.txt index a4b25f4b64dd2..16218ec88e5a6 100644 --- a/tests/baselines/reference/parserES5SymbolProperty5.errors.txt +++ b/tests/baselines/reference/parserES5SymbolProperty5.errors.txt @@ -1,9 +1,12 @@ +tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty5.ts(2,5): error TS1166: A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type. tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty5.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here. -==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty5.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty5.ts (2 errors) ==== class C { [Symbol.isRegExp]: string; + ~~~~~~~~~~~~~~~~~ +!!! error TS1166: A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type. ~~~~~~ !!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5SymbolProperty5.js b/tests/baselines/reference/parserES5SymbolProperty5.js index 9042b73bbd98e..bd4eb997f5a21 100644 --- a/tests/baselines/reference/parserES5SymbolProperty5.js +++ b/tests/baselines/reference/parserES5SymbolProperty5.js @@ -9,3 +9,4 @@ var C = /** @class */ (function () { } return C; }()); +Symbol.isRegExp; diff --git a/tests/baselines/reference/parserES5SymbolProperty6.errors.txt b/tests/baselines/reference/parserES5SymbolProperty6.errors.txt index 26a4d1e8efe42..e88a5e3935271 100644 --- a/tests/baselines/reference/parserES5SymbolProperty6.errors.txt +++ b/tests/baselines/reference/parserES5SymbolProperty6.errors.txt @@ -1,9 +1,12 @@ +tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty6.ts(2,5): error TS1166: A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type. tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty6.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here. -==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty6.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty6.ts (2 errors) ==== class C { [Symbol.toStringTag]: string = ""; + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS1166: A computed property name in a class property declaration must refer to an expression whose type is a literal type or a 'unique symbol' type. ~~~~~~ !!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5SymbolProperty6.js b/tests/baselines/reference/parserES5SymbolProperty6.js index da7c05716219e..feda26811f7d8 100644 --- a/tests/baselines/reference/parserES5SymbolProperty6.js +++ b/tests/baselines/reference/parserES5SymbolProperty6.js @@ -4,9 +4,11 @@ class C { } //// [parserES5SymbolProperty6.js] +var _a; var C = /** @class */ (function () { function C() { - this[Symbol.toStringTag] = ""; + this[_a] = ""; } return C; }()); +_a = Symbol.toStringTag; diff --git a/tests/baselines/reference/parserES5SymbolProperty8.errors.txt b/tests/baselines/reference/parserES5SymbolProperty8.errors.txt index 5b4c0b99b5165..bdc626329722d 100644 --- a/tests/baselines/reference/parserES5SymbolProperty8.errors.txt +++ b/tests/baselines/reference/parserES5SymbolProperty8.errors.txt @@ -1,9 +1,12 @@ +tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty8.ts(2,5): error TS1170: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type. tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty8.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here. -==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty8.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty8.ts (2 errors) ==== var x: { [Symbol.toPrimitive](): string + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS1170: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type. ~~~~~~ !!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5SymbolProperty8.types b/tests/baselines/reference/parserES5SymbolProperty8.types index fcafdfd2ae280..fe070af9cedd7 100644 --- a/tests/baselines/reference/parserES5SymbolProperty8.types +++ b/tests/baselines/reference/parserES5SymbolProperty8.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty8.ts === var x: { ->x : { [Symbol.toPrimitive](): string; } +>x : {} [Symbol.toPrimitive](): string >[Symbol.toPrimitive] : () => string diff --git a/tests/baselines/reference/parserES5SymbolProperty9.errors.txt b/tests/baselines/reference/parserES5SymbolProperty9.errors.txt index 6ff6f65f0cd1a..79fa4b5ddf008 100644 --- a/tests/baselines/reference/parserES5SymbolProperty9.errors.txt +++ b/tests/baselines/reference/parserES5SymbolProperty9.errors.txt @@ -1,9 +1,12 @@ +tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty9.ts(2,5): error TS1170: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type. tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty9.ts(2,6): error TS2693: 'Symbol' only refers to a type, but is being used as a value here. -==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty9.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty9.ts (2 errors) ==== var x: { [Symbol.toPrimitive]: string + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS1170: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type. ~~~~~~ !!! error TS2693: 'Symbol' only refers to a type, but is being used as a value here. } \ No newline at end of file diff --git a/tests/baselines/reference/parserES5SymbolProperty9.types b/tests/baselines/reference/parserES5SymbolProperty9.types index b5568a201a597..b4d47ffc3f3ed 100644 --- a/tests/baselines/reference/parserES5SymbolProperty9.types +++ b/tests/baselines/reference/parserES5SymbolProperty9.types @@ -1,6 +1,6 @@ === tests/cases/conformance/parser/ecmascript5/Symbols/parserES5SymbolProperty9.ts === var x: { ->x : { [Symbol.toPrimitive]: string; } +>x : {} [Symbol.toPrimitive]: string >[Symbol.toPrimitive] : string diff --git a/tests/baselines/reference/parserSymbolIndexer5.types b/tests/baselines/reference/parserSymbolIndexer5.types index e7a51c52393d3..864312e54389f 100644 --- a/tests/baselines/reference/parserSymbolIndexer5.types +++ b/tests/baselines/reference/parserSymbolIndexer5.types @@ -1,7 +1,7 @@ === tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolIndexer5.ts === var x = { ->x : { [x: number]: any; "": any; } ->{ [s: symbol]: ""} : { [x: number]: any; "": any; } +>x : { [x: string]: any; "": any; } +>{ [s: symbol]: ""} : { [x: string]: any; "": any; } [s: symbol]: "" >[s : any diff --git a/tests/baselines/reference/parserSymbolProperty1.types b/tests/baselines/reference/parserSymbolProperty1.types index 29ea682a2bd93..fb4196f96463f 100644 --- a/tests/baselines/reference/parserSymbolProperty1.types +++ b/tests/baselines/reference/parserSymbolProperty1.types @@ -4,7 +4,7 @@ interface I { [Symbol.iterator]: string; >[Symbol.iterator] : string ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol } diff --git a/tests/baselines/reference/parserSymbolProperty2.types b/tests/baselines/reference/parserSymbolProperty2.types index e6f207ec76693..a4a2f2e55de8c 100644 --- a/tests/baselines/reference/parserSymbolProperty2.types +++ b/tests/baselines/reference/parserSymbolProperty2.types @@ -4,7 +4,7 @@ interface I { [Symbol.unscopables](): string; >[Symbol.unscopables] : () => string ->Symbol.unscopables : symbol +>Symbol.unscopables : unique symbol >Symbol : SymbolConstructor ->unscopables : symbol +>unscopables : unique symbol } diff --git a/tests/baselines/reference/parserSymbolProperty3.types b/tests/baselines/reference/parserSymbolProperty3.types index 342b8f979b6aa..95264a2932656 100644 --- a/tests/baselines/reference/parserSymbolProperty3.types +++ b/tests/baselines/reference/parserSymbolProperty3.types @@ -4,7 +4,7 @@ declare class C { [Symbol.unscopables](): string; >[Symbol.unscopables] : () => string ->Symbol.unscopables : symbol +>Symbol.unscopables : unique symbol >Symbol : SymbolConstructor ->unscopables : symbol +>unscopables : unique symbol } diff --git a/tests/baselines/reference/parserSymbolProperty4.types b/tests/baselines/reference/parserSymbolProperty4.types index d59c507d1d202..bc0d67e056e19 100644 --- a/tests/baselines/reference/parserSymbolProperty4.types +++ b/tests/baselines/reference/parserSymbolProperty4.types @@ -4,7 +4,7 @@ declare class C { [Symbol.toPrimitive]: string; >[Symbol.toPrimitive] : string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol } diff --git a/tests/baselines/reference/parserSymbolProperty5.js b/tests/baselines/reference/parserSymbolProperty5.js index 62a805602d1b1..2a3a558eeeed9 100644 --- a/tests/baselines/reference/parserSymbolProperty5.js +++ b/tests/baselines/reference/parserSymbolProperty5.js @@ -6,3 +6,4 @@ class C { //// [parserSymbolProperty5.js] class C { } +Symbol.toPrimitive; diff --git a/tests/baselines/reference/parserSymbolProperty5.types b/tests/baselines/reference/parserSymbolProperty5.types index 0c07379a4ebbd..e6941ab3c7732 100644 --- a/tests/baselines/reference/parserSymbolProperty5.types +++ b/tests/baselines/reference/parserSymbolProperty5.types @@ -4,7 +4,7 @@ class C { [Symbol.toPrimitive]: string; >[Symbol.toPrimitive] : string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol } diff --git a/tests/baselines/reference/parserSymbolProperty6.js b/tests/baselines/reference/parserSymbolProperty6.js index d2aa55fe0859a..4bb5a7c01f41b 100644 --- a/tests/baselines/reference/parserSymbolProperty6.js +++ b/tests/baselines/reference/parserSymbolProperty6.js @@ -4,8 +4,10 @@ class C { } //// [parserSymbolProperty6.js] +var _a; class C { constructor() { - this[Symbol.toStringTag] = ""; + this[_a] = ""; } } +_a = Symbol.toStringTag; diff --git a/tests/baselines/reference/parserSymbolProperty6.types b/tests/baselines/reference/parserSymbolProperty6.types index fb2003b9db942..f9e1f3e979fdb 100644 --- a/tests/baselines/reference/parserSymbolProperty6.types +++ b/tests/baselines/reference/parserSymbolProperty6.types @@ -4,8 +4,8 @@ class C { [Symbol.toStringTag]: string = ""; >[Symbol.toStringTag] : string ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol >"" : "" } diff --git a/tests/baselines/reference/parserSymbolProperty7.types b/tests/baselines/reference/parserSymbolProperty7.types index 9ac1ca2f7d32f..18e5a95aa2c27 100644 --- a/tests/baselines/reference/parserSymbolProperty7.types +++ b/tests/baselines/reference/parserSymbolProperty7.types @@ -4,7 +4,7 @@ class C { [Symbol.toStringTag](): void { } >[Symbol.toStringTag] : () => void ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol } diff --git a/tests/baselines/reference/parserSymbolProperty8.types b/tests/baselines/reference/parserSymbolProperty8.types index dfac56694359a..29cea864c62fe 100644 --- a/tests/baselines/reference/parserSymbolProperty8.types +++ b/tests/baselines/reference/parserSymbolProperty8.types @@ -4,7 +4,7 @@ var x: { [Symbol.toPrimitive](): string >[Symbol.toPrimitive] : () => string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol } diff --git a/tests/baselines/reference/parserSymbolProperty9.types b/tests/baselines/reference/parserSymbolProperty9.types index 48d3f56a2f3fe..a2a96591b60b4 100644 --- a/tests/baselines/reference/parserSymbolProperty9.types +++ b/tests/baselines/reference/parserSymbolProperty9.types @@ -4,7 +4,7 @@ var x: { [Symbol.toPrimitive]: string >[Symbol.toPrimitive] : string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol } diff --git a/tests/baselines/reference/privateIndexer2.types b/tests/baselines/reference/privateIndexer2.types index fcfabc3f799c0..216360cac5e98 100644 --- a/tests/baselines/reference/privateIndexer2.types +++ b/tests/baselines/reference/privateIndexer2.types @@ -3,7 +3,7 @@ var x = { >x : any ->{ private [x: string]: string;} : { [x: number]: any; string: any; } +>{ private [x: string]: string;} : { [x: string]: any; string: any; } private [x: string]: string; >[x : any diff --git a/tests/baselines/reference/superSymbolIndexedAccess2.types b/tests/baselines/reference/superSymbolIndexedAccess2.types index f76c768444066..de4dac377f813 100644 --- a/tests/baselines/reference/superSymbolIndexedAccess2.types +++ b/tests/baselines/reference/superSymbolIndexedAccess2.types @@ -4,9 +4,9 @@ class Foo { [Symbol.isConcatSpreadable]() { >[Symbol.isConcatSpreadable] : () => number ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol return 0; >0 : 0 @@ -19,16 +19,16 @@ class Bar extends Foo { [Symbol.isConcatSpreadable]() { >[Symbol.isConcatSpreadable] : () => number ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol return super[Symbol.isConcatSpreadable](); >super[Symbol.isConcatSpreadable]() : number >super[Symbol.isConcatSpreadable] : () => number >super : Foo ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol } } diff --git a/tests/baselines/reference/symbolDeclarationEmit1.js b/tests/baselines/reference/symbolDeclarationEmit1.js index b8ca5495ba759..e2904372a104a 100644 --- a/tests/baselines/reference/symbolDeclarationEmit1.js +++ b/tests/baselines/reference/symbolDeclarationEmit1.js @@ -6,6 +6,7 @@ class C { //// [symbolDeclarationEmit1.js] class C { } +Symbol.toPrimitive; //// [symbolDeclarationEmit1.d.ts] diff --git a/tests/baselines/reference/symbolDeclarationEmit1.types b/tests/baselines/reference/symbolDeclarationEmit1.types index 0493f5b327274..533f2607167d1 100644 --- a/tests/baselines/reference/symbolDeclarationEmit1.types +++ b/tests/baselines/reference/symbolDeclarationEmit1.types @@ -4,7 +4,7 @@ class C { [Symbol.toPrimitive]: number; >[Symbol.toPrimitive] : number ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol } diff --git a/tests/baselines/reference/symbolDeclarationEmit10.types b/tests/baselines/reference/symbolDeclarationEmit10.types index 9a47c89173979..4492dba079c92 100644 --- a/tests/baselines/reference/symbolDeclarationEmit10.types +++ b/tests/baselines/reference/symbolDeclarationEmit10.types @@ -5,15 +5,15 @@ var obj = { get [Symbol.isConcatSpreadable]() { return '' }, >[Symbol.isConcatSpreadable] : string ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol >'' : "" set [Symbol.isConcatSpreadable](x) { } >[Symbol.isConcatSpreadable] : string ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol >x : string } diff --git a/tests/baselines/reference/symbolDeclarationEmit11.js b/tests/baselines/reference/symbolDeclarationEmit11.js index 25af4c4306475..06c99f96d3ead 100644 --- a/tests/baselines/reference/symbolDeclarationEmit11.js +++ b/tests/baselines/reference/symbolDeclarationEmit11.js @@ -7,12 +7,13 @@ class C { } //// [symbolDeclarationEmit11.js] +var _a; class C { - static [Symbol.isConcatSpreadable]() { } + static [(_a = Symbol.iterator, Symbol.isConcatSpreadable)]() { } static get [Symbol.toPrimitive]() { return ""; } static set [Symbol.toPrimitive](x) { } } -C[Symbol.iterator] = 0; +C[_a] = 0; //// [symbolDeclarationEmit11.d.ts] diff --git a/tests/baselines/reference/symbolDeclarationEmit11.types b/tests/baselines/reference/symbolDeclarationEmit11.types index 2d9c9a95e0861..9bb3176e99505 100644 --- a/tests/baselines/reference/symbolDeclarationEmit11.types +++ b/tests/baselines/reference/symbolDeclarationEmit11.types @@ -4,28 +4,28 @@ class C { static [Symbol.iterator] = 0; >[Symbol.iterator] : number ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >0 : 0 static [Symbol.isConcatSpreadable]() { } >[Symbol.isConcatSpreadable] : () => void ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol static get [Symbol.toPrimitive]() { return ""; } >[Symbol.toPrimitive] : string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >"" : "" static set [Symbol.toPrimitive](x) { } >[Symbol.toPrimitive] : string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >x : string } diff --git a/tests/baselines/reference/symbolDeclarationEmit12.errors.txt b/tests/baselines/reference/symbolDeclarationEmit12.errors.txt index d9759c00f6de2..b2e83d92adf04 100644 --- a/tests/baselines/reference/symbolDeclarationEmit12.errors.txt +++ b/tests/baselines/reference/symbolDeclarationEmit12.errors.txt @@ -1,6 +1,6 @@ -tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(5,9): error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. -tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(9,13): error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. -tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(10,13): error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. +tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(5,9): error TS2718: Duplicate declaration '[Symbol.toPrimitive]'. +tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(9,13): error TS2718: Duplicate declaration '[Symbol.toPrimitive]'. +tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(10,13): error TS2718: Duplicate declaration '[Symbol.toPrimitive]'. ==== tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts (3 errors) ==== @@ -10,15 +10,15 @@ tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(10,13): error TS2 [Symbol.iterator]: I; [Symbol.toPrimitive](x: I) { } ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. +!!! error TS2718: Duplicate declaration '[Symbol.toPrimitive]'. [Symbol.isConcatSpreadable](): I { return undefined } get [Symbol.toPrimitive]() { return undefined; } ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. +!!! error TS2718: Duplicate declaration '[Symbol.toPrimitive]'. set [Symbol.toPrimitive](x: I) { } ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. +!!! error TS2718: Duplicate declaration '[Symbol.toPrimitive]'. } } \ No newline at end of file diff --git a/tests/baselines/reference/symbolDeclarationEmit12.js b/tests/baselines/reference/symbolDeclarationEmit12.js index d700f9ac51092..2771037b2f142 100644 --- a/tests/baselines/reference/symbolDeclarationEmit12.js +++ b/tests/baselines/reference/symbolDeclarationEmit12.js @@ -16,7 +16,7 @@ module M { var M; (function (M) { class C { - [Symbol.toPrimitive](x) { } + [(Symbol.iterator, Symbol.toPrimitive)](x) { } [Symbol.isConcatSpreadable]() { return undefined; } diff --git a/tests/baselines/reference/symbolDeclarationEmit12.types b/tests/baselines/reference/symbolDeclarationEmit12.types index 71a66861f9ae6..121b66feba81a 100644 --- a/tests/baselines/reference/symbolDeclarationEmit12.types +++ b/tests/baselines/reference/symbolDeclarationEmit12.types @@ -10,24 +10,24 @@ module M { [Symbol.iterator]: I; >[Symbol.iterator] : I ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >I : I [Symbol.toPrimitive](x: I) { } >[Symbol.toPrimitive] : (x: I) => void ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >x : I >I : I [Symbol.isConcatSpreadable](): I { >[Symbol.isConcatSpreadable] : () => I ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol >I : I return undefined @@ -35,16 +35,16 @@ module M { } get [Symbol.toPrimitive]() { return undefined; } >[Symbol.toPrimitive] : any ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >undefined : undefined set [Symbol.toPrimitive](x: I) { } >[Symbol.toPrimitive] : I ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >x : I >I : I } diff --git a/tests/baselines/reference/symbolDeclarationEmit13.types b/tests/baselines/reference/symbolDeclarationEmit13.types index 26e2087c2e9c4..9ffb1d8fbf18e 100644 --- a/tests/baselines/reference/symbolDeclarationEmit13.types +++ b/tests/baselines/reference/symbolDeclarationEmit13.types @@ -4,15 +4,15 @@ class C { get [Symbol.toPrimitive]() { return ""; } >[Symbol.toPrimitive] : string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >"" : "" set [Symbol.toStringTag](x) { } >[Symbol.toStringTag] : any ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol >x : any } diff --git a/tests/baselines/reference/symbolDeclarationEmit14.types b/tests/baselines/reference/symbolDeclarationEmit14.types index e8e2490e9fe96..daf81242ecb46 100644 --- a/tests/baselines/reference/symbolDeclarationEmit14.types +++ b/tests/baselines/reference/symbolDeclarationEmit14.types @@ -4,15 +4,15 @@ class C { get [Symbol.toPrimitive]() { return ""; } >[Symbol.toPrimitive] : string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >"" : "" get [Symbol.toStringTag]() { return ""; } >[Symbol.toStringTag] : string ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol >"" : "" } diff --git a/tests/baselines/reference/symbolDeclarationEmit2.js b/tests/baselines/reference/symbolDeclarationEmit2.js index 3fde1f6b46762..ae649b3d62afd 100644 --- a/tests/baselines/reference/symbolDeclarationEmit2.js +++ b/tests/baselines/reference/symbolDeclarationEmit2.js @@ -4,11 +4,13 @@ class C { } //// [symbolDeclarationEmit2.js] +var _a; class C { constructor() { - this[Symbol.toPrimitive] = ""; + this[_a] = ""; } } +_a = Symbol.toPrimitive; //// [symbolDeclarationEmit2.d.ts] diff --git a/tests/baselines/reference/symbolDeclarationEmit2.types b/tests/baselines/reference/symbolDeclarationEmit2.types index e12781ad742f6..1796f23fa064c 100644 --- a/tests/baselines/reference/symbolDeclarationEmit2.types +++ b/tests/baselines/reference/symbolDeclarationEmit2.types @@ -4,8 +4,8 @@ class C { [Symbol.toPrimitive] = ""; >[Symbol.toPrimitive] : string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >"" : "" } diff --git a/tests/baselines/reference/symbolDeclarationEmit3.types b/tests/baselines/reference/symbolDeclarationEmit3.types index 7166bc3fa931b..3b8e37f5188e0 100644 --- a/tests/baselines/reference/symbolDeclarationEmit3.types +++ b/tests/baselines/reference/symbolDeclarationEmit3.types @@ -4,22 +4,22 @@ class C { [Symbol.toPrimitive](x: number); >[Symbol.toPrimitive] : { (x: number): any; (x: string): any; } ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >x : number [Symbol.toPrimitive](x: string); >[Symbol.toPrimitive] : { (x: number): any; (x: string): any; } ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >x : string [Symbol.toPrimitive](x: any) { } >[Symbol.toPrimitive] : { (x: number): any; (x: string): any; } ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >x : any } diff --git a/tests/baselines/reference/symbolDeclarationEmit4.types b/tests/baselines/reference/symbolDeclarationEmit4.types index e73791f6901ab..347ac0943de63 100644 --- a/tests/baselines/reference/symbolDeclarationEmit4.types +++ b/tests/baselines/reference/symbolDeclarationEmit4.types @@ -4,15 +4,15 @@ class C { get [Symbol.toPrimitive]() { return ""; } >[Symbol.toPrimitive] : string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >"" : "" set [Symbol.toPrimitive](x) { } >[Symbol.toPrimitive] : string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >x : string } diff --git a/tests/baselines/reference/symbolDeclarationEmit5.types b/tests/baselines/reference/symbolDeclarationEmit5.types index 75fc6dc6a7547..9d50203115db3 100644 --- a/tests/baselines/reference/symbolDeclarationEmit5.types +++ b/tests/baselines/reference/symbolDeclarationEmit5.types @@ -4,7 +4,7 @@ interface I { [Symbol.isConcatSpreadable](): string; >[Symbol.isConcatSpreadable] : () => string ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol } diff --git a/tests/baselines/reference/symbolDeclarationEmit6.types b/tests/baselines/reference/symbolDeclarationEmit6.types index 1a22dd3278bb6..857bb7dfef278 100644 --- a/tests/baselines/reference/symbolDeclarationEmit6.types +++ b/tests/baselines/reference/symbolDeclarationEmit6.types @@ -4,7 +4,7 @@ interface I { [Symbol.isConcatSpreadable]: string; >[Symbol.isConcatSpreadable] : string ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol } diff --git a/tests/baselines/reference/symbolDeclarationEmit7.types b/tests/baselines/reference/symbolDeclarationEmit7.types index 207d3f0bab052..2166dfd46788c 100644 --- a/tests/baselines/reference/symbolDeclarationEmit7.types +++ b/tests/baselines/reference/symbolDeclarationEmit7.types @@ -4,7 +4,7 @@ var obj: { [Symbol.isConcatSpreadable]: string; >[Symbol.isConcatSpreadable] : string ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol } diff --git a/tests/baselines/reference/symbolDeclarationEmit8.types b/tests/baselines/reference/symbolDeclarationEmit8.types index bf8309e4cdede..98dbc63529681 100644 --- a/tests/baselines/reference/symbolDeclarationEmit8.types +++ b/tests/baselines/reference/symbolDeclarationEmit8.types @@ -5,8 +5,8 @@ var obj = { [Symbol.isConcatSpreadable]: 0 >[Symbol.isConcatSpreadable] : number ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol >0 : 0 } diff --git a/tests/baselines/reference/symbolDeclarationEmit9.types b/tests/baselines/reference/symbolDeclarationEmit9.types index 176009d28c9f5..532abeb103663 100644 --- a/tests/baselines/reference/symbolDeclarationEmit9.types +++ b/tests/baselines/reference/symbolDeclarationEmit9.types @@ -5,7 +5,7 @@ var obj = { [Symbol.isConcatSpreadable]() { } >[Symbol.isConcatSpreadable] : () => void ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol } diff --git a/tests/baselines/reference/symbolProperty10.js b/tests/baselines/reference/symbolProperty10.js index 74bcf886461e5..7e4d14c1622e3 100644 --- a/tests/baselines/reference/symbolProperty10.js +++ b/tests/baselines/reference/symbolProperty10.js @@ -13,6 +13,7 @@ var c: C = i; //// [symbolProperty10.js] class C { } +Symbol.iterator; var i; i = new C; var c = i; diff --git a/tests/baselines/reference/symbolProperty10.types b/tests/baselines/reference/symbolProperty10.types index bcc642e936f74..eb38c4af0d784 100644 --- a/tests/baselines/reference/symbolProperty10.types +++ b/tests/baselines/reference/symbolProperty10.types @@ -4,9 +4,9 @@ class C { [Symbol.iterator]: { x; y }; >[Symbol.iterator] : { x: any; y: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any >y : any } @@ -15,9 +15,9 @@ interface I { [Symbol.iterator]?: { x }; >[Symbol.iterator] : { x: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any } diff --git a/tests/baselines/reference/symbolProperty11.types b/tests/baselines/reference/symbolProperty11.types index acf95b8315f42..592e5a982a61c 100644 --- a/tests/baselines/reference/symbolProperty11.types +++ b/tests/baselines/reference/symbolProperty11.types @@ -7,9 +7,9 @@ interface I { [Symbol.iterator]?: { x }; >[Symbol.iterator] : { x: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any } diff --git a/tests/baselines/reference/symbolProperty12.js b/tests/baselines/reference/symbolProperty12.js index 474ec4a0ffad8..b59633f3314a8 100644 --- a/tests/baselines/reference/symbolProperty12.js +++ b/tests/baselines/reference/symbolProperty12.js @@ -13,6 +13,7 @@ var c: C = i; //// [symbolProperty12.js] class C { } +Symbol.iterator; var i; i = new C; var c = i; diff --git a/tests/baselines/reference/symbolProperty12.types b/tests/baselines/reference/symbolProperty12.types index 16b0313d0e482..471611518df73 100644 --- a/tests/baselines/reference/symbolProperty12.types +++ b/tests/baselines/reference/symbolProperty12.types @@ -4,9 +4,9 @@ class C { private [Symbol.iterator]: { x }; >[Symbol.iterator] : { x: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any } interface I { @@ -14,9 +14,9 @@ interface I { [Symbol.iterator]: { x }; >[Symbol.iterator] : { x: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any } diff --git a/tests/baselines/reference/symbolProperty13.js b/tests/baselines/reference/symbolProperty13.js index d7620d01159dc..4b44317b27f4f 100644 --- a/tests/baselines/reference/symbolProperty13.js +++ b/tests/baselines/reference/symbolProperty13.js @@ -19,6 +19,7 @@ bar(i); //// [symbolProperty13.js] class C { } +Symbol.iterator; foo(new C); var i; bar(i); diff --git a/tests/baselines/reference/symbolProperty13.types b/tests/baselines/reference/symbolProperty13.types index adce2ae7cb0d4..5013af247661b 100644 --- a/tests/baselines/reference/symbolProperty13.types +++ b/tests/baselines/reference/symbolProperty13.types @@ -4,9 +4,9 @@ class C { [Symbol.iterator]: { x; y }; >[Symbol.iterator] : { x: any; y: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any >y : any } @@ -15,9 +15,9 @@ interface I { [Symbol.iterator]: { x }; >[Symbol.iterator] : { x: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any } diff --git a/tests/baselines/reference/symbolProperty14.js b/tests/baselines/reference/symbolProperty14.js index 716bc68b43029..5244aebfc4b16 100644 --- a/tests/baselines/reference/symbolProperty14.js +++ b/tests/baselines/reference/symbolProperty14.js @@ -19,6 +19,7 @@ bar(i); //// [symbolProperty14.js] class C { } +Symbol.iterator; foo(new C); var i; bar(i); diff --git a/tests/baselines/reference/symbolProperty14.types b/tests/baselines/reference/symbolProperty14.types index 2cc344444ce29..cb4dbdb34b6f0 100644 --- a/tests/baselines/reference/symbolProperty14.types +++ b/tests/baselines/reference/symbolProperty14.types @@ -4,9 +4,9 @@ class C { [Symbol.iterator]: { x; y }; >[Symbol.iterator] : { x: any; y: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any >y : any } @@ -15,9 +15,9 @@ interface I { [Symbol.iterator]?: { x }; >[Symbol.iterator] : { x: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any } diff --git a/tests/baselines/reference/symbolProperty15.types b/tests/baselines/reference/symbolProperty15.types index 8403aaf60128f..437f970a6e25f 100644 --- a/tests/baselines/reference/symbolProperty15.types +++ b/tests/baselines/reference/symbolProperty15.types @@ -7,9 +7,9 @@ interface I { [Symbol.iterator]?: { x }; >[Symbol.iterator] : { x: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any } diff --git a/tests/baselines/reference/symbolProperty16.js b/tests/baselines/reference/symbolProperty16.js index 1382d913104f9..54e826db86cf3 100644 --- a/tests/baselines/reference/symbolProperty16.js +++ b/tests/baselines/reference/symbolProperty16.js @@ -19,6 +19,7 @@ bar(i); //// [symbolProperty16.js] class C { } +Symbol.iterator; foo(new C); var i; bar(i); diff --git a/tests/baselines/reference/symbolProperty16.types b/tests/baselines/reference/symbolProperty16.types index e276fad08e4ed..506525774c852 100644 --- a/tests/baselines/reference/symbolProperty16.types +++ b/tests/baselines/reference/symbolProperty16.types @@ -4,9 +4,9 @@ class C { private [Symbol.iterator]: { x }; >[Symbol.iterator] : { x: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any } interface I { @@ -14,9 +14,9 @@ interface I { [Symbol.iterator]: { x }; >[Symbol.iterator] : { x: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any } diff --git a/tests/baselines/reference/symbolProperty17.types b/tests/baselines/reference/symbolProperty17.types index d71fe919becc6..9374b49e3af0a 100644 --- a/tests/baselines/reference/symbolProperty17.types +++ b/tests/baselines/reference/symbolProperty17.types @@ -4,9 +4,9 @@ interface I { [Symbol.iterator]: number; >[Symbol.iterator] : number ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol [s: symbol]: string; >s : symbol @@ -23,7 +23,7 @@ var it = i[Symbol.iterator]; >it : number >i[Symbol.iterator] : number >i : I ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol diff --git a/tests/baselines/reference/symbolProperty18.types b/tests/baselines/reference/symbolProperty18.types index 4a4d9e413ae5e..520ce8e96bed3 100644 --- a/tests/baselines/reference/symbolProperty18.types +++ b/tests/baselines/reference/symbolProperty18.types @@ -5,23 +5,23 @@ var i = { [Symbol.iterator]: 0, >[Symbol.iterator] : number ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >0 : 0 [Symbol.toStringTag]() { return "" }, >[Symbol.toStringTag] : () => string ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol >"" : "" set [Symbol.toPrimitive](p: boolean) { } >[Symbol.toPrimitive] : boolean ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >p : boolean } @@ -29,25 +29,25 @@ var it = i[Symbol.iterator]; >it : number >i[Symbol.iterator] : number >i : { [Symbol.iterator]: number; [Symbol.toStringTag](): string; [Symbol.toPrimitive]: boolean; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol var str = i[Symbol.toStringTag](); >str : string >i[Symbol.toStringTag]() : string >i[Symbol.toStringTag] : () => string >i : { [Symbol.iterator]: number; [Symbol.toStringTag](): string; [Symbol.toPrimitive]: boolean; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol i[Symbol.toPrimitive] = false; >i[Symbol.toPrimitive] = false : false >i[Symbol.toPrimitive] : boolean >i : { [Symbol.iterator]: number; [Symbol.toStringTag](): string; [Symbol.toPrimitive]: boolean; } ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >false : false diff --git a/tests/baselines/reference/symbolProperty19.types b/tests/baselines/reference/symbolProperty19.types index 8d369de58c2d0..5483416f24003 100644 --- a/tests/baselines/reference/symbolProperty19.types +++ b/tests/baselines/reference/symbolProperty19.types @@ -5,18 +5,18 @@ var i = { [Symbol.iterator]: { p: null }, >[Symbol.iterator] : { p: null; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >{ p: null } : { p: null; } >p : null >null : null [Symbol.toStringTag]() { return { p: undefined }; } >[Symbol.toStringTag] : () => { p: any; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol >{ p: undefined } : { p: undefined; } >p : undefined >undefined : undefined @@ -26,16 +26,16 @@ var it = i[Symbol.iterator]; >it : { p: any; } >i[Symbol.iterator] : { p: any; } >i : { [Symbol.iterator]: { p: any; }; [Symbol.toStringTag](): { p: any; }; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol var str = i[Symbol.toStringTag](); >str : { p: any; } >i[Symbol.toStringTag]() : { p: any; } >i[Symbol.toStringTag] : () => { p: any; } >i : { [Symbol.iterator]: { p: any; }; [Symbol.toStringTag](): { p: any; }; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol diff --git a/tests/baselines/reference/symbolProperty20.types b/tests/baselines/reference/symbolProperty20.types index 4489197c9f635..805020ee9f010 100644 --- a/tests/baselines/reference/symbolProperty20.types +++ b/tests/baselines/reference/symbolProperty20.types @@ -4,16 +4,16 @@ interface I { [Symbol.iterator]: (s: string) => string; >[Symbol.iterator] : (s: string) => string ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >s : string [Symbol.toStringTag](s: number): number; >[Symbol.toStringTag] : (s: number) => number ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol >s : number } @@ -24,18 +24,18 @@ var i: I = { [Symbol.iterator]: s => s, >[Symbol.iterator] : (s: string) => string ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >s => s : (s: string) => string >s : string >s : string [Symbol.toStringTag](n) { return n; } >[Symbol.toStringTag] : (n: number) => number ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol >n : number >n : number } diff --git a/tests/baselines/reference/symbolProperty21.types b/tests/baselines/reference/symbolProperty21.types index 9141cffbb22de..afec8a9c8b8b4 100644 --- a/tests/baselines/reference/symbolProperty21.types +++ b/tests/baselines/reference/symbolProperty21.types @@ -6,16 +6,16 @@ interface I { [Symbol.unscopables]: T; >[Symbol.unscopables] : T ->Symbol.unscopables : symbol +>Symbol.unscopables : unique symbol >Symbol : SymbolConstructor ->unscopables : symbol +>unscopables : unique symbol >T : T [Symbol.isConcatSpreadable]: U; >[Symbol.isConcatSpreadable] : U ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol >U : U } @@ -39,23 +39,23 @@ foo({ [Symbol.isConcatSpreadable]: "", >[Symbol.isConcatSpreadable] : string ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol >"" : "" [Symbol.toPrimitive]: 0, >[Symbol.toPrimitive] : number ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol >0 : 0 [Symbol.unscopables]: true >[Symbol.unscopables] : boolean ->Symbol.unscopables : symbol +>Symbol.unscopables : unique symbol >Symbol : SymbolConstructor ->unscopables : symbol +>unscopables : unique symbol >true : true }); diff --git a/tests/baselines/reference/symbolProperty22.types b/tests/baselines/reference/symbolProperty22.types index 478fb6c2c2eb1..11a9839ce669b 100644 --- a/tests/baselines/reference/symbolProperty22.types +++ b/tests/baselines/reference/symbolProperty22.types @@ -6,9 +6,9 @@ interface I { [Symbol.unscopables](x: T): U; >[Symbol.unscopables] : (x: T) => U ->Symbol.unscopables : symbol +>Symbol.unscopables : unique symbol >Symbol : SymbolConstructor ->unscopables : symbol +>unscopables : unique symbol >x : T >T : T >U : U @@ -32,9 +32,9 @@ foo("", { [Symbol.unscopables]: s => s.length }); >"" : "" >{ [Symbol.unscopables]: s => s.length } : { [Symbol.unscopables]: (s: string) => number; } >[Symbol.unscopables] : (s: string) => number ->Symbol.unscopables : symbol +>Symbol.unscopables : unique symbol >Symbol : SymbolConstructor ->unscopables : symbol +>unscopables : unique symbol >s => s.length : (s: string) => number >s : string >s.length : number diff --git a/tests/baselines/reference/symbolProperty23.types b/tests/baselines/reference/symbolProperty23.types index 02df66e6c7805..caf96ba6893f4 100644 --- a/tests/baselines/reference/symbolProperty23.types +++ b/tests/baselines/reference/symbolProperty23.types @@ -4,9 +4,9 @@ interface I { [Symbol.toPrimitive]: () => boolean; >[Symbol.toPrimitive] : () => boolean ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol } class C implements I { @@ -15,9 +15,9 @@ class C implements I { [Symbol.toPrimitive]() { >[Symbol.toPrimitive] : () => boolean ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol return true; >true : true diff --git a/tests/baselines/reference/symbolProperty24.types b/tests/baselines/reference/symbolProperty24.types index f1de8a95632bc..5706bd983893d 100644 --- a/tests/baselines/reference/symbolProperty24.types +++ b/tests/baselines/reference/symbolProperty24.types @@ -4,9 +4,9 @@ interface I { [Symbol.toPrimitive]: () => boolean; >[Symbol.toPrimitive] : () => boolean ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol } class C implements I { @@ -15,9 +15,9 @@ class C implements I { [Symbol.toPrimitive]() { >[Symbol.toPrimitive] : () => string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol return ""; >"" : "" diff --git a/tests/baselines/reference/symbolProperty25.types b/tests/baselines/reference/symbolProperty25.types index 41be32c876f02..f4dd72e9ad8f9 100644 --- a/tests/baselines/reference/symbolProperty25.types +++ b/tests/baselines/reference/symbolProperty25.types @@ -4,9 +4,9 @@ interface I { [Symbol.toPrimitive]: () => boolean; >[Symbol.toPrimitive] : () => boolean ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol } class C implements I { @@ -15,9 +15,9 @@ class C implements I { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => string ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return ""; >"" : "" diff --git a/tests/baselines/reference/symbolProperty26.types b/tests/baselines/reference/symbolProperty26.types index abea57bd6903e..a79626467899c 100644 --- a/tests/baselines/reference/symbolProperty26.types +++ b/tests/baselines/reference/symbolProperty26.types @@ -4,9 +4,9 @@ class C1 { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => string ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return ""; >"" : "" @@ -19,9 +19,9 @@ class C2 extends C1 { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => string ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return ""; >"" : "" diff --git a/tests/baselines/reference/symbolProperty27.types b/tests/baselines/reference/symbolProperty27.types index b27ffdff71339..98ae6c0784e81 100644 --- a/tests/baselines/reference/symbolProperty27.types +++ b/tests/baselines/reference/symbolProperty27.types @@ -4,9 +4,9 @@ class C1 { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => {} ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return {}; >{} : {} @@ -19,9 +19,9 @@ class C2 extends C1 { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => string ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return ""; >"" : "" diff --git a/tests/baselines/reference/symbolProperty28.types b/tests/baselines/reference/symbolProperty28.types index f1224f677cb09..fb38eadefe7e7 100644 --- a/tests/baselines/reference/symbolProperty28.types +++ b/tests/baselines/reference/symbolProperty28.types @@ -4,9 +4,9 @@ class C1 { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => { x: string; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return { x: "" }; >{ x: "" } : { x: string; } @@ -29,8 +29,8 @@ var obj = c[Symbol.toStringTag]().x; >c[Symbol.toStringTag]() : { x: string; } >c[Symbol.toStringTag] : () => { x: string; } >c : C2 ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol >x : string diff --git a/tests/baselines/reference/symbolProperty29.types b/tests/baselines/reference/symbolProperty29.types index f4388acb041b2..e4c5bec1e7943 100644 --- a/tests/baselines/reference/symbolProperty29.types +++ b/tests/baselines/reference/symbolProperty29.types @@ -4,9 +4,9 @@ class C1 { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => { x: string; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return { x: "" }; >{ x: "" } : { x: string; } diff --git a/tests/baselines/reference/symbolProperty30.types b/tests/baselines/reference/symbolProperty30.types index 6d66de0fc8a28..5464ea908e7f9 100644 --- a/tests/baselines/reference/symbolProperty30.types +++ b/tests/baselines/reference/symbolProperty30.types @@ -4,9 +4,9 @@ class C1 { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => { x: string; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return { x: "" }; >{ x: "" } : { x: string; } diff --git a/tests/baselines/reference/symbolProperty31.types b/tests/baselines/reference/symbolProperty31.types index 82c4df523c478..f1e6b72793e74 100644 --- a/tests/baselines/reference/symbolProperty31.types +++ b/tests/baselines/reference/symbolProperty31.types @@ -4,9 +4,9 @@ class C1 { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => { x: string; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return { x: "" }; >{ x: "" } : { x: string; } diff --git a/tests/baselines/reference/symbolProperty32.types b/tests/baselines/reference/symbolProperty32.types index bf899308c0ac3..2db3c1092f077 100644 --- a/tests/baselines/reference/symbolProperty32.types +++ b/tests/baselines/reference/symbolProperty32.types @@ -4,9 +4,9 @@ class C1 { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => { x: string; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return { x: "" }; >{ x: "" } : { x: string; } diff --git a/tests/baselines/reference/symbolProperty33.types b/tests/baselines/reference/symbolProperty33.types index b8ae732ca17bf..6f85c4f06d15e 100644 --- a/tests/baselines/reference/symbolProperty33.types +++ b/tests/baselines/reference/symbolProperty33.types @@ -5,9 +5,9 @@ class C1 extends C2 { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => { x: string; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return { x: "" }; >{ x: "" } : { x: string; } diff --git a/tests/baselines/reference/symbolProperty34.types b/tests/baselines/reference/symbolProperty34.types index 724c676f26c68..de0b7268abd71 100644 --- a/tests/baselines/reference/symbolProperty34.types +++ b/tests/baselines/reference/symbolProperty34.types @@ -5,9 +5,9 @@ class C1 extends C2 { [Symbol.toStringTag]() { >[Symbol.toStringTag] : () => { x: string; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return { x: "" }; >{ x: "" } : { x: string; } diff --git a/tests/baselines/reference/symbolProperty35.types b/tests/baselines/reference/symbolProperty35.types index 22d85c2cb203b..21758c76cd7f7 100644 --- a/tests/baselines/reference/symbolProperty35.types +++ b/tests/baselines/reference/symbolProperty35.types @@ -4,9 +4,9 @@ interface I1 { [Symbol.toStringTag](): { x: string } >[Symbol.toStringTag] : () => { x: string; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol >x : string } interface I2 { @@ -14,9 +14,9 @@ interface I2 { [Symbol.toStringTag](): { x: number } >[Symbol.toStringTag] : () => { x: number; } ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol >x : number } diff --git a/tests/baselines/reference/symbolProperty36.errors.txt b/tests/baselines/reference/symbolProperty36.errors.txt index 69102da1db387..7f0a4785c417f 100644 --- a/tests/baselines/reference/symbolProperty36.errors.txt +++ b/tests/baselines/reference/symbolProperty36.errors.txt @@ -1,4 +1,4 @@ -tests/cases/conformance/es6/Symbols/symbolProperty36.ts(3,5): error TS2300: Duplicate identifier '[Symbol.isConcatSpreadable]'. +tests/cases/conformance/es6/Symbols/symbolProperty36.ts(3,5): error TS2718: Duplicate declaration '[Symbol.isConcatSpreadable]'. ==== tests/cases/conformance/es6/Symbols/symbolProperty36.ts (1 errors) ==== @@ -6,5 +6,5 @@ tests/cases/conformance/es6/Symbols/symbolProperty36.ts(3,5): error TS2300: Dupl [Symbol.isConcatSpreadable]: 0, [Symbol.isConcatSpreadable]: 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS2300: Duplicate identifier '[Symbol.isConcatSpreadable]'. +!!! error TS2718: Duplicate declaration '[Symbol.isConcatSpreadable]'. } \ No newline at end of file diff --git a/tests/baselines/reference/symbolProperty36.types b/tests/baselines/reference/symbolProperty36.types index afd80a19c9f1e..734f28f2dbb78 100644 --- a/tests/baselines/reference/symbolProperty36.types +++ b/tests/baselines/reference/symbolProperty36.types @@ -5,15 +5,15 @@ var x = { [Symbol.isConcatSpreadable]: 0, >[Symbol.isConcatSpreadable] : number ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol >0 : 0 [Symbol.isConcatSpreadable]: 1 >[Symbol.isConcatSpreadable] : number ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol >1 : 1 } diff --git a/tests/baselines/reference/symbolProperty37.types b/tests/baselines/reference/symbolProperty37.types index 85167590ea636..38dab665164b2 100644 --- a/tests/baselines/reference/symbolProperty37.types +++ b/tests/baselines/reference/symbolProperty37.types @@ -4,13 +4,13 @@ interface I { [Symbol.isConcatSpreadable]: string; >[Symbol.isConcatSpreadable] : string ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol [Symbol.isConcatSpreadable]: string; >[Symbol.isConcatSpreadable] : string ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol } diff --git a/tests/baselines/reference/symbolProperty38.types b/tests/baselines/reference/symbolProperty38.types index bfcdbfe7bd70f..d9fca972af712 100644 --- a/tests/baselines/reference/symbolProperty38.types +++ b/tests/baselines/reference/symbolProperty38.types @@ -4,16 +4,16 @@ interface I { [Symbol.isConcatSpreadable]: string; >[Symbol.isConcatSpreadable] : string ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol } interface I { >I : I [Symbol.isConcatSpreadable]: string; >[Symbol.isConcatSpreadable] : string ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol } diff --git a/tests/baselines/reference/symbolProperty39.types b/tests/baselines/reference/symbolProperty39.types index 90a5fcd375e35..33461d4d1a770 100644 --- a/tests/baselines/reference/symbolProperty39.types +++ b/tests/baselines/reference/symbolProperty39.types @@ -4,23 +4,23 @@ class C { [Symbol.iterator](x: string): string; >[Symbol.iterator] : { (x: string): string; (x: number): number; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : string [Symbol.iterator](x: number): number; >[Symbol.iterator] : { (x: string): string; (x: number): number; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : number [Symbol.iterator](x: any) { >[Symbol.iterator] : { (x: string): string; (x: number): number; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any return undefined; @@ -28,9 +28,9 @@ class C { } [Symbol.iterator](x: any) { >[Symbol.iterator] : { (x: string): string; (x: number): number; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any return undefined; diff --git a/tests/baselines/reference/symbolProperty40.types b/tests/baselines/reference/symbolProperty40.types index ca65adaa0bc3c..fe94507019b33 100644 --- a/tests/baselines/reference/symbolProperty40.types +++ b/tests/baselines/reference/symbolProperty40.types @@ -4,23 +4,23 @@ class C { [Symbol.iterator](x: string): string; >[Symbol.iterator] : { (x: string): string; (x: number): number; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : string [Symbol.iterator](x: number): number; >[Symbol.iterator] : { (x: string): string; (x: number): number; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : number [Symbol.iterator](x: any) { >[Symbol.iterator] : { (x: string): string; (x: number): number; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any return undefined; @@ -37,17 +37,17 @@ c[Symbol.iterator](""); >c[Symbol.iterator]("") : string >c[Symbol.iterator] : { (x: string): string; (x: number): number; } >c : C ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >"" : "" c[Symbol.iterator](0); >c[Symbol.iterator](0) : number >c[Symbol.iterator] : { (x: string): string; (x: number): number; } >c : C ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >0 : 0 diff --git a/tests/baselines/reference/symbolProperty41.types b/tests/baselines/reference/symbolProperty41.types index 76d47f90e4710..3cd7790c774b1 100644 --- a/tests/baselines/reference/symbolProperty41.types +++ b/tests/baselines/reference/symbolProperty41.types @@ -4,26 +4,26 @@ class C { [Symbol.iterator](x: string): { x: string }; >[Symbol.iterator] : { (x: string): { x: string; }; (x: "hello"): { x: string; hello: string; }; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : string >x : string [Symbol.iterator](x: "hello"): { x: string; hello: string }; >[Symbol.iterator] : { (x: string): { x: string; }; (x: "hello"): { x: string; hello: string; }; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : "hello" >x : string >hello : string [Symbol.iterator](x: any) { >[Symbol.iterator] : { (x: string): { x: string; }; (x: "hello"): { x: string; hello: string; }; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any return undefined; @@ -40,17 +40,17 @@ c[Symbol.iterator](""); >c[Symbol.iterator]("") : { x: string; } >c[Symbol.iterator] : { (x: string): { x: string; }; (x: "hello"): { x: string; hello: string; }; } >c : C ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >"" : "" c[Symbol.iterator]("hello"); >c[Symbol.iterator]("hello") : { x: string; hello: string; } >c[Symbol.iterator] : { (x: string): { x: string; }; (x: "hello"): { x: string; hello: string; }; } >c : C ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >"hello" : "hello" diff --git a/tests/baselines/reference/symbolProperty42.types b/tests/baselines/reference/symbolProperty42.types index 72fa0138bab31..b5ed285f12196 100644 --- a/tests/baselines/reference/symbolProperty42.types +++ b/tests/baselines/reference/symbolProperty42.types @@ -4,23 +4,23 @@ class C { [Symbol.iterator](x: string): string; >[Symbol.iterator] : { (x: string): string; (x: any): any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : string static [Symbol.iterator](x: number): number; >[Symbol.iterator] : (x: number) => number ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : number [Symbol.iterator](x: any) { >[Symbol.iterator] : { (x: string): string; (x: any): any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any return undefined; diff --git a/tests/baselines/reference/symbolProperty43.types b/tests/baselines/reference/symbolProperty43.types index b4ffaeac9bd31..94ef7b692a203 100644 --- a/tests/baselines/reference/symbolProperty43.types +++ b/tests/baselines/reference/symbolProperty43.types @@ -4,15 +4,15 @@ class C { [Symbol.iterator](x: string): string; >[Symbol.iterator] : { (x: string): string; (x: number): number; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : string [Symbol.iterator](x: number): number; >[Symbol.iterator] : { (x: string): string; (x: number): number; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : number } diff --git a/tests/baselines/reference/symbolProperty44.errors.txt b/tests/baselines/reference/symbolProperty44.errors.txt index 2cef480e73664..1180383884e9a 100644 --- a/tests/baselines/reference/symbolProperty44.errors.txt +++ b/tests/baselines/reference/symbolProperty44.errors.txt @@ -1,17 +1,17 @@ -tests/cases/conformance/es6/Symbols/symbolProperty44.ts(2,9): error TS2300: Duplicate identifier '[Symbol.hasInstance]'. -tests/cases/conformance/es6/Symbols/symbolProperty44.ts(5,9): error TS2300: Duplicate identifier '[Symbol.hasInstance]'. +tests/cases/conformance/es6/Symbols/symbolProperty44.ts(2,9): error TS2718: Duplicate declaration '[Symbol.hasInstance]'. +tests/cases/conformance/es6/Symbols/symbolProperty44.ts(5,9): error TS2718: Duplicate declaration '[Symbol.hasInstance]'. ==== tests/cases/conformance/es6/Symbols/symbolProperty44.ts (2 errors) ==== class C { get [Symbol.hasInstance]() { ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2300: Duplicate identifier '[Symbol.hasInstance]'. +!!! error TS2718: Duplicate declaration '[Symbol.hasInstance]'. return ""; } get [Symbol.hasInstance]() { ~~~~~~~~~~~~~~~~~~~~ -!!! error TS2300: Duplicate identifier '[Symbol.hasInstance]'. +!!! error TS2718: Duplicate declaration '[Symbol.hasInstance]'. return ""; } } \ No newline at end of file diff --git a/tests/baselines/reference/symbolProperty44.types b/tests/baselines/reference/symbolProperty44.types index 2900c3eebc0f6..6206f1062062e 100644 --- a/tests/baselines/reference/symbolProperty44.types +++ b/tests/baselines/reference/symbolProperty44.types @@ -4,18 +4,18 @@ class C { get [Symbol.hasInstance]() { >[Symbol.hasInstance] : string ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol return ""; >"" : "" } get [Symbol.hasInstance]() { >[Symbol.hasInstance] : string ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol return ""; >"" : "" diff --git a/tests/baselines/reference/symbolProperty45.types b/tests/baselines/reference/symbolProperty45.types index 674a262fcd633..4d5e4657f1868 100644 --- a/tests/baselines/reference/symbolProperty45.types +++ b/tests/baselines/reference/symbolProperty45.types @@ -4,18 +4,18 @@ class C { get [Symbol.hasInstance]() { >[Symbol.hasInstance] : string ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol return ""; >"" : "" } get [Symbol.toPrimitive]() { >[Symbol.toPrimitive] : string ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol return ""; >"" : "" diff --git a/tests/baselines/reference/symbolProperty46.types b/tests/baselines/reference/symbolProperty46.types index afdda60c51078..9ef3873ba591d 100644 --- a/tests/baselines/reference/symbolProperty46.types +++ b/tests/baselines/reference/symbolProperty46.types @@ -4,9 +4,9 @@ class C { get [Symbol.hasInstance]() { >[Symbol.hasInstance] : string ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol return ""; >"" : "" @@ -14,9 +14,9 @@ class C { // Should take a string set [Symbol.hasInstance](x) { >[Symbol.hasInstance] : string ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >x : string } } @@ -27,9 +27,9 @@ class C { >(new C) : C >new C : C >C : typeof C ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >0 : 0 (new C)[Symbol.hasInstance] = ""; @@ -38,8 +38,8 @@ class C { >(new C) : C >new C : C >C : typeof C ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >"" : "" diff --git a/tests/baselines/reference/symbolProperty47.types b/tests/baselines/reference/symbolProperty47.types index af01c5e74a74a..59937f3208457 100644 --- a/tests/baselines/reference/symbolProperty47.types +++ b/tests/baselines/reference/symbolProperty47.types @@ -4,9 +4,9 @@ class C { get [Symbol.hasInstance]() { >[Symbol.hasInstance] : number ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol return ""; >"" : "" @@ -14,9 +14,9 @@ class C { // Should take a string set [Symbol.hasInstance](x: number) { >[Symbol.hasInstance] : number ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >x : number } } @@ -27,9 +27,9 @@ class C { >(new C) : C >new C : C >C : typeof C ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >0 : 0 (new C)[Symbol.hasInstance] = ""; @@ -38,8 +38,8 @@ class C { >(new C) : C >new C : C >C : typeof C ->Symbol.hasInstance : symbol +>Symbol.hasInstance : unique symbol >Symbol : SymbolConstructor ->hasInstance : symbol +>hasInstance : unique symbol >"" : "" diff --git a/tests/baselines/reference/symbolProperty48.errors.txt b/tests/baselines/reference/symbolProperty48.errors.txt deleted file mode 100644 index 8d52fa48a0728..0000000000000 --- a/tests/baselines/reference/symbolProperty48.errors.txt +++ /dev/null @@ -1,13 +0,0 @@ -tests/cases/conformance/es6/Symbols/symbolProperty48.ts(5,10): error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. - - -==== tests/cases/conformance/es6/Symbols/symbolProperty48.ts (1 errors) ==== - module M { - var Symbol; - - class C { - [Symbol.iterator]() { } - ~~~~~~~~~~~~~~~ -!!! error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. - } - } \ No newline at end of file diff --git a/tests/baselines/reference/symbolProperty49.errors.txt b/tests/baselines/reference/symbolProperty49.errors.txt deleted file mode 100644 index 8a15b359ee7e8..0000000000000 --- a/tests/baselines/reference/symbolProperty49.errors.txt +++ /dev/null @@ -1,13 +0,0 @@ -tests/cases/conformance/es6/Symbols/symbolProperty49.ts(5,10): error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. - - -==== tests/cases/conformance/es6/Symbols/symbolProperty49.ts (1 errors) ==== - module M { - export var Symbol; - - class C { - [Symbol.iterator]() { } - ~~~~~~~~~~~~~~~ -!!! error TS2471: A computed property name of the form 'Symbol.iterator' must be of type 'symbol'. - } - } \ No newline at end of file diff --git a/tests/baselines/reference/symbolProperty5.types b/tests/baselines/reference/symbolProperty5.types index 398253128a701..58848f9ae237f 100644 --- a/tests/baselines/reference/symbolProperty5.types +++ b/tests/baselines/reference/symbolProperty5.types @@ -5,22 +5,22 @@ var x = { [Symbol.iterator]: 0, >[Symbol.iterator] : number ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >0 : 0 [Symbol.toPrimitive]() { }, >[Symbol.toPrimitive] : () => void ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol get [Symbol.toStringTag]() { >[Symbol.toStringTag] : number ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return 0; >0 : 0 diff --git a/tests/baselines/reference/symbolProperty50.types b/tests/baselines/reference/symbolProperty50.types index 659fd1d102f54..4635e723ec94f 100644 --- a/tests/baselines/reference/symbolProperty50.types +++ b/tests/baselines/reference/symbolProperty50.types @@ -10,8 +10,8 @@ module M { [Symbol.iterator]() { } >[Symbol.iterator] : () => void ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol } } diff --git a/tests/baselines/reference/symbolProperty51.types b/tests/baselines/reference/symbolProperty51.types index c840469eb43f9..b2c6c53358b19 100644 --- a/tests/baselines/reference/symbolProperty51.types +++ b/tests/baselines/reference/symbolProperty51.types @@ -10,8 +10,8 @@ module M { [Symbol.iterator]() { } >[Symbol.iterator] : () => void ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol } } diff --git a/tests/baselines/reference/symbolProperty52.errors.txt b/tests/baselines/reference/symbolProperty52.errors.txt index 5a44918d56489..4887130bbd419 100644 --- a/tests/baselines/reference/symbolProperty52.errors.txt +++ b/tests/baselines/reference/symbolProperty52.errors.txt @@ -1,10 +1,8 @@ tests/cases/conformance/es6/Symbols/symbolProperty52.ts(2,13): error TS2339: Property 'nonsense' does not exist on type 'SymbolConstructor'. -tests/cases/conformance/es6/Symbols/symbolProperty52.ts(5,1): error TS2322: Type '{}' is not assignable to type '{ [Symbol.nonsense]: number; }'. - Property '[Symbol.nonsense]' is missing in type '{}'. tests/cases/conformance/es6/Symbols/symbolProperty52.ts(7,12): error TS2339: Property 'nonsense' does not exist on type 'SymbolConstructor'. -==== tests/cases/conformance/es6/Symbols/symbolProperty52.ts (3 errors) ==== +==== tests/cases/conformance/es6/Symbols/symbolProperty52.ts (2 errors) ==== var obj = { [Symbol.nonsense]: 0 ~~~~~~~~ @@ -12,9 +10,6 @@ tests/cases/conformance/es6/Symbols/symbolProperty52.ts(7,12): error TS2339: Pro }; obj = {}; - ~~~ -!!! error TS2322: Type '{}' is not assignable to type '{ [Symbol.nonsense]: number; }'. -!!! error TS2322: Property '[Symbol.nonsense]' is missing in type '{}'. obj[Symbol.nonsense]; ~~~~~~~~ diff --git a/tests/baselines/reference/symbolProperty52.types b/tests/baselines/reference/symbolProperty52.types index d67595a22b76c..72ad1693a697e 100644 --- a/tests/baselines/reference/symbolProperty52.types +++ b/tests/baselines/reference/symbolProperty52.types @@ -1,7 +1,7 @@ === tests/cases/conformance/es6/Symbols/symbolProperty52.ts === var obj = { ->obj : { [Symbol.nonsense]: number; } ->{ [Symbol.nonsense]: 0} : { [Symbol.nonsense]: number; } +>obj : { [x: string]: number; } +>{ [Symbol.nonsense]: 0} : { [x: string]: number; } [Symbol.nonsense]: 0 >[Symbol.nonsense] : number @@ -14,12 +14,12 @@ var obj = { obj = {}; >obj = {} : {} ->obj : { [Symbol.nonsense]: number; } +>obj : { [x: string]: number; } >{} : {} obj[Symbol.nonsense]; ->obj[Symbol.nonsense] : any ->obj : { [Symbol.nonsense]: number; } +>obj[Symbol.nonsense] : number +>obj : { [x: string]: number; } >Symbol.nonsense : any >Symbol : SymbolConstructor >nonsense : any diff --git a/tests/baselines/reference/symbolProperty53.types b/tests/baselines/reference/symbolProperty53.types index 77dc3f16452f8..14fcc3e487545 100644 --- a/tests/baselines/reference/symbolProperty53.types +++ b/tests/baselines/reference/symbolProperty53.types @@ -1,7 +1,7 @@ === tests/cases/conformance/es6/Symbols/symbolProperty53.ts === var obj = { ->obj : { [Symbol.for]: number; } ->{ [Symbol.for]: 0} : { [Symbol.for]: number; } +>obj : {} +>{ [Symbol.for]: 0} : {} [Symbol.for]: 0 >[Symbol.for] : number @@ -14,7 +14,7 @@ var obj = { obj[Symbol.for]; >obj[Symbol.for] : any ->obj : { [Symbol.for]: number; } +>obj : {} >Symbol.for : (key: string) => symbol >Symbol : SymbolConstructor >for : (key: string) => symbol diff --git a/tests/baselines/reference/symbolProperty54.types b/tests/baselines/reference/symbolProperty54.types index 2c6f9cd9e72df..8e4e9ab2bb737 100644 --- a/tests/baselines/reference/symbolProperty54.types +++ b/tests/baselines/reference/symbolProperty54.types @@ -1,7 +1,7 @@ === tests/cases/conformance/es6/Symbols/symbolProperty54.ts === var obj = { ->obj : { [Symbol.prototype]: number; } ->{ [Symbol.prototype]: 0} : { [Symbol.prototype]: number; } +>obj : {} +>{ [Symbol.prototype]: 0} : {} [Symbol.prototype]: 0 >[Symbol.prototype] : number diff --git a/tests/baselines/reference/symbolProperty55.types b/tests/baselines/reference/symbolProperty55.types index 9316e5447e4e9..9aa40f7847418 100644 --- a/tests/baselines/reference/symbolProperty55.types +++ b/tests/baselines/reference/symbolProperty55.types @@ -5,9 +5,9 @@ var obj = { [Symbol.iterator]: 0 >[Symbol.iterator] : number ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >0 : 0 }; @@ -22,9 +22,9 @@ module M { // The following should be of type 'any'. This is because even though obj has a property keyed by Symbol.iterator, // the key passed in here is the *wrong* Symbol.iterator. It is not the iterator property of the global Symbol. obj[Symbol.iterator]; ->obj[Symbol.iterator] : any +>obj[Symbol.iterator] : number >obj : { [Symbol.iterator]: number; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol } diff --git a/tests/baselines/reference/symbolProperty56.types b/tests/baselines/reference/symbolProperty56.types index 1f061739c4116..fc93f45b19833 100644 --- a/tests/baselines/reference/symbolProperty56.types +++ b/tests/baselines/reference/symbolProperty56.types @@ -5,9 +5,9 @@ var obj = { [Symbol.iterator]: 0 >[Symbol.iterator] : number ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >0 : 0 }; diff --git a/tests/baselines/reference/symbolProperty57.types b/tests/baselines/reference/symbolProperty57.types index 88dca83627fd9..ecea9c6ef51f5 100644 --- a/tests/baselines/reference/symbolProperty57.types +++ b/tests/baselines/reference/symbolProperty57.types @@ -5,9 +5,9 @@ var obj = { [Symbol.iterator]: 0 >[Symbol.iterator] : number ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >0 : 0 }; diff --git a/tests/baselines/reference/symbolProperty58.errors.txt b/tests/baselines/reference/symbolProperty58.errors.txt deleted file mode 100644 index 5f8b117a74c1b..0000000000000 --- a/tests/baselines/reference/symbolProperty58.errors.txt +++ /dev/null @@ -1,13 +0,0 @@ -tests/cases/conformance/es6/Symbols/symbolProperty58.ts(6,6): error TS2471: A computed property name of the form 'Symbol.foo' must be of type 'symbol'. - - -==== tests/cases/conformance/es6/Symbols/symbolProperty58.ts (1 errors) ==== - interface SymbolConstructor { - foo: string; - } - - var obj = { - [Symbol.foo]: 0 - ~~~~~~~~~~ -!!! error TS2471: A computed property name of the form 'Symbol.foo' must be of type 'symbol'. - } \ No newline at end of file diff --git a/tests/baselines/reference/symbolProperty58.types b/tests/baselines/reference/symbolProperty58.types index 77edb8de1e72c..3d3c8bd55fe16 100644 --- a/tests/baselines/reference/symbolProperty58.types +++ b/tests/baselines/reference/symbolProperty58.types @@ -7,8 +7,8 @@ interface SymbolConstructor { } var obj = { ->obj : { [Symbol.foo]: number; } ->{ [Symbol.foo]: 0} : { [Symbol.foo]: number; } +>obj : { [x: string]: number; } +>{ [Symbol.foo]: 0} : { [x: string]: number; } [Symbol.foo]: 0 >[Symbol.foo] : number diff --git a/tests/baselines/reference/symbolProperty59.errors.txt b/tests/baselines/reference/symbolProperty59.errors.txt index dfb2ece3d21f1..67deb77166147 100644 --- a/tests/baselines/reference/symbolProperty59.errors.txt +++ b/tests/baselines/reference/symbolProperty59.errors.txt @@ -1,9 +1,12 @@ +tests/cases/conformance/es6/Symbols/symbolProperty59.ts(2,5): error TS1169: A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type. tests/cases/conformance/es6/Symbols/symbolProperty59.ts(2,5): error TS2464: A computed property name must be of type 'string', 'number', 'symbol', or 'any'. -==== tests/cases/conformance/es6/Symbols/symbolProperty59.ts (1 errors) ==== +==== tests/cases/conformance/es6/Symbols/symbolProperty59.ts (2 errors) ==== interface I { [Symbol.keyFor]: string; ~~~~~~~~~~~~~~~ +!!! error TS1169: A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type. + ~~~~~~~~~~~~~~~ !!! error TS2464: A computed property name must be of type 'string', 'number', 'symbol', or 'any'. } \ No newline at end of file diff --git a/tests/baselines/reference/symbolProperty6.js b/tests/baselines/reference/symbolProperty6.js index ab9564c35e583..2361f4233c63a 100644 --- a/tests/baselines/reference/symbolProperty6.js +++ b/tests/baselines/reference/symbolProperty6.js @@ -9,11 +9,12 @@ class C { } //// [symbolProperty6.js] +var _a; class C { constructor() { - this[Symbol.iterator] = 0; + this[_a] = 0; } - [Symbol.toPrimitive]() { } + [(_a = Symbol.iterator, Symbol.unscopables, Symbol.toPrimitive)]() { } get [Symbol.toStringTag]() { return 0; } diff --git a/tests/baselines/reference/symbolProperty6.types b/tests/baselines/reference/symbolProperty6.types index 8bdd05f01517a..c54543fe40905 100644 --- a/tests/baselines/reference/symbolProperty6.types +++ b/tests/baselines/reference/symbolProperty6.types @@ -4,28 +4,28 @@ class C { [Symbol.iterator] = 0; >[Symbol.iterator] : number ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >0 : 0 [Symbol.unscopables]: number; >[Symbol.unscopables] : number ->Symbol.unscopables : symbol +>Symbol.unscopables : unique symbol >Symbol : SymbolConstructor ->unscopables : symbol +>unscopables : unique symbol [Symbol.toPrimitive]() { } >[Symbol.toPrimitive] : () => void ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol get [Symbol.toStringTag]() { >[Symbol.toStringTag] : number ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol return 0; >0 : 0 diff --git a/tests/baselines/reference/symbolProperty60.types b/tests/baselines/reference/symbolProperty60.types index cadbfcef1f430..7aa12ee2227f6 100644 --- a/tests/baselines/reference/symbolProperty60.types +++ b/tests/baselines/reference/symbolProperty60.types @@ -5,9 +5,9 @@ interface I1 { [Symbol.toStringTag]: string; >[Symbol.toStringTag] : string ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol [key: string]: number; >key : string @@ -18,9 +18,9 @@ interface I2 { [Symbol.toStringTag]: string; >[Symbol.toStringTag] : string ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol [key: number]: boolean; >key : number diff --git a/tests/baselines/reference/symbolProperty8.types b/tests/baselines/reference/symbolProperty8.types index 936a2b9ec8872..5754ed38eea12 100644 --- a/tests/baselines/reference/symbolProperty8.types +++ b/tests/baselines/reference/symbolProperty8.types @@ -4,13 +4,13 @@ interface I { [Symbol.unscopables]: number; >[Symbol.unscopables] : number ->Symbol.unscopables : symbol +>Symbol.unscopables : unique symbol >Symbol : SymbolConstructor ->unscopables : symbol +>unscopables : unique symbol [Symbol.toPrimitive](); >[Symbol.toPrimitive] : () => any ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol } diff --git a/tests/baselines/reference/symbolProperty9.js b/tests/baselines/reference/symbolProperty9.js index e6c8f7299a9e8..85b3df51438dc 100644 --- a/tests/baselines/reference/symbolProperty9.js +++ b/tests/baselines/reference/symbolProperty9.js @@ -13,6 +13,7 @@ var c: C = i; //// [symbolProperty9.js] class C { } +Symbol.iterator; var i; i = new C; var c = i; diff --git a/tests/baselines/reference/symbolProperty9.types b/tests/baselines/reference/symbolProperty9.types index b307677b2fabe..366a0d6b6f9b6 100644 --- a/tests/baselines/reference/symbolProperty9.types +++ b/tests/baselines/reference/symbolProperty9.types @@ -4,9 +4,9 @@ class C { [Symbol.iterator]: { x; y }; >[Symbol.iterator] : { x: any; y: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any >y : any } @@ -15,9 +15,9 @@ interface I { [Symbol.iterator]: { x }; >[Symbol.iterator] : { x: any; } ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol >x : any } diff --git a/tests/baselines/reference/symbolType2.types b/tests/baselines/reference/symbolType2.types index 5da837f738e5e..fcc00973f2322 100644 --- a/tests/baselines/reference/symbolType2.types +++ b/tests/baselines/reference/symbolType2.types @@ -1,15 +1,15 @@ === tests/cases/conformance/es6/Symbols/symbolType2.ts === Symbol.isConcatSpreadable in {}; >Symbol.isConcatSpreadable in {} : boolean ->Symbol.isConcatSpreadable : symbol +>Symbol.isConcatSpreadable : unique symbol >Symbol : SymbolConstructor ->isConcatSpreadable : symbol +>isConcatSpreadable : unique symbol >{} : {} "" in Symbol.toPrimitive; >"" in Symbol.toPrimitive : boolean >"" : "" ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol diff --git a/tests/baselines/reference/symbolType3.types b/tests/baselines/reference/symbolType3.types index 6f31861fd936f..336440af93cae 100644 --- a/tests/baselines/reference/symbolType3.types +++ b/tests/baselines/reference/symbolType3.types @@ -6,21 +6,21 @@ var s = Symbol(); delete Symbol.iterator; >delete Symbol.iterator : boolean ->Symbol.iterator : symbol +>Symbol.iterator : unique symbol >Symbol : SymbolConstructor ->iterator : symbol +>iterator : unique symbol void Symbol.toPrimitive; >void Symbol.toPrimitive : undefined ->Symbol.toPrimitive : symbol +>Symbol.toPrimitive : unique symbol >Symbol : SymbolConstructor ->toPrimitive : symbol +>toPrimitive : unique symbol typeof Symbol.toStringTag; >typeof Symbol.toStringTag : "string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function" ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol ++s; >++s : number diff --git a/tests/baselines/reference/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.js b/tests/baselines/reference/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.js new file mode 100644 index 0000000000000..30c2b1c639e8a --- /dev/null +++ b/tests/baselines/reference/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.js @@ -0,0 +1,14 @@ +//// [typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts] +const s = Symbol("s"); + +interface I { + n: number; + [s]: string; + [Symbol.iterator](): IterableIterator<[string, string]>; +} + +type K = keyof I; +type T = I[K]; + +//// [typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.js] +var s = Symbol("s"); diff --git a/tests/baselines/reference/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.symbols b/tests/baselines/reference/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.symbols new file mode 100644 index 0000000000000..b8a91d04fa213 --- /dev/null +++ b/tests/baselines/reference/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.symbols @@ -0,0 +1,32 @@ +=== tests/cases/compiler/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts === +const s = Symbol("s"); +>s : Symbol(s, Decl(typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts, 0, 5)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +interface I { +>I : Symbol(I, Decl(typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts, 0, 22)) + + n: number; +>n : Symbol(I.n, Decl(typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts, 2, 13)) + + [s]: string; +>[s] : Symbol(I[s], Decl(typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts, 3, 14)) +>s : Symbol(s, Decl(typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts, 0, 5)) + + [Symbol.iterator](): IterableIterator<[string, string]>; +>[Symbol.iterator] : Symbol(I[Symbol.iterator], Decl(typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts, 4, 16)) +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.es2015.iterable.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.es2015.iterable.d.ts, --, --)) +>IterableIterator : Symbol(IterableIterator, Decl(lib.es2015.iterable.d.ts, --, --)) +} + +type K = keyof I; +>K : Symbol(K, Decl(typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts, 6, 1)) +>I : Symbol(I, Decl(typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts, 0, 22)) + +type T = I[K]; +>T : Symbol(T, Decl(typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts, 8, 17)) +>I : Symbol(I, Decl(typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts, 0, 22)) +>K : Symbol(K, Decl(typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts, 6, 1)) + diff --git a/tests/baselines/reference/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.types b/tests/baselines/reference/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.types new file mode 100644 index 0000000000000..ee1707fec01e2 --- /dev/null +++ b/tests/baselines/reference/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.types @@ -0,0 +1,34 @@ +=== tests/cases/compiler/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts === +const s = Symbol("s"); +>s : unique symbol +>Symbol("s") : unique symbol +>Symbol : SymbolConstructor +>"s" : "s" + +interface I { +>I : I + + n: number; +>n : number + + [s]: string; +>[s] : string +>s : unique symbol + + [Symbol.iterator](): IterableIterator<[string, string]>; +>[Symbol.iterator] : () => IterableIterator<[string, string]> +>Symbol.iterator : unique symbol +>Symbol : SymbolConstructor +>iterator : unique symbol +>IterableIterator : IterableIterator +} + +type K = keyof I; +>K : unique symbol | unique symbol | "n" +>I : I + +type T = I[K]; +>T : string | number | (() => IterableIterator<[string, string]>) +>I : I +>K : unique symbol | unique symbol | "n" + diff --git a/tests/baselines/reference/useSharedArrayBuffer4.types b/tests/baselines/reference/useSharedArrayBuffer4.types index c3602b26b63b6..9776dc1ae3d3e 100644 --- a/tests/baselines/reference/useSharedArrayBuffer4.types +++ b/tests/baselines/reference/useSharedArrayBuffer4.types @@ -18,17 +18,17 @@ var species = foge[Symbol.species]; >species : SharedArrayBuffer >foge[Symbol.species] : SharedArrayBuffer >foge : SharedArrayBuffer ->Symbol.species : symbol +>Symbol.species : unique symbol >Symbol : SymbolConstructor ->species : symbol +>species : unique symbol var stringTag = foge[Symbol.toStringTag]; >stringTag : "SharedArrayBuffer" >foge[Symbol.toStringTag] : "SharedArrayBuffer" >foge : SharedArrayBuffer ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol var len = foge.byteLength; >len : number diff --git a/tests/baselines/reference/useSharedArrayBuffer5.types b/tests/baselines/reference/useSharedArrayBuffer5.types index 48db8b739f938..1d3f896012b18 100644 --- a/tests/baselines/reference/useSharedArrayBuffer5.types +++ b/tests/baselines/reference/useSharedArrayBuffer5.types @@ -9,15 +9,15 @@ var species = foge[Symbol.species]; >species : SharedArrayBuffer >foge[Symbol.species] : SharedArrayBuffer >foge : SharedArrayBuffer ->Symbol.species : symbol +>Symbol.species : unique symbol >Symbol : SymbolConstructor ->species : symbol +>species : unique symbol var stringTag = foge[Symbol.toStringTag]; >stringTag : "SharedArrayBuffer" >foge[Symbol.toStringTag] : "SharedArrayBuffer" >foge : SharedArrayBuffer ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol diff --git a/tests/baselines/reference/useSharedArrayBuffer6.types b/tests/baselines/reference/useSharedArrayBuffer6.types index af80ec432f388..73196aacacdca 100644 --- a/tests/baselines/reference/useSharedArrayBuffer6.types +++ b/tests/baselines/reference/useSharedArrayBuffer6.types @@ -9,15 +9,15 @@ var species = foge[Symbol.species]; >species : SharedArrayBuffer >foge[Symbol.species] : SharedArrayBuffer >foge : SharedArrayBuffer ->Symbol.species : symbol +>Symbol.species : unique symbol >Symbol : SymbolConstructor ->species : symbol +>species : unique symbol var stringTag = foge[Symbol.toStringTag]; >stringTag : "SharedArrayBuffer" >foge[Symbol.toStringTag] : "SharedArrayBuffer" >foge : SharedArrayBuffer ->Symbol.toStringTag : symbol +>Symbol.toStringTag : unique symbol >Symbol : SymbolConstructor ->toStringTag : symbol +>toStringTag : unique symbol diff --git a/tests/cases/compiler/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts b/tests/cases/compiler/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts new file mode 100644 index 0000000000000..890c84667ef7b --- /dev/null +++ b/tests/cases/compiler/typesOfInterfaceContainUniqueSymbolsFromWellKnownSymbols.ts @@ -0,0 +1,11 @@ +// @lib: es6 +const s = Symbol("s"); + +interface I { + n: number; + [s]: string; + [Symbol.iterator](): IterableIterator<[string, string]>; +} + +type K = keyof I; +type T = I[K]; \ No newline at end of file diff --git a/tests/cases/conformance/Symbols/ES5SymbolProperty5.ts b/tests/cases/conformance/Symbols/ES5SymbolProperty5.ts index ec46ddad21dc1..6a5dd9ea3fcdd 100644 --- a/tests/cases/conformance/Symbols/ES5SymbolProperty5.ts +++ b/tests/cases/conformance/Symbols/ES5SymbolProperty5.ts @@ -1,5 +1,5 @@ //@target: ES5 -var Symbol: { iterator: symbol }; +var Symbol: { readonly iterator: unique symbol }; class C { [Symbol.iterator]() { } diff --git a/tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts b/tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts index b832d57855ed2..7f0f236c55610 100644 --- a/tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts +++ b/tests/cases/conformance/statements/for-ofStatements/ES5For-ofTypeCheck10.ts @@ -1,4 +1,5 @@ //@target: ES5 +//@lib: es6 // In ES3/5, you cannot for...of over an arbitrary iterable. class StringIterator { diff --git a/tests/cases/fourslash/codeFixClassImplementInterfaceComputedPropertyNameWellKnownSymbols.ts b/tests/cases/fourslash/codeFixClassImplementInterfaceComputedPropertyNameWellKnownSymbols.ts index 2bc7a738258a4..6916a5d58ba59 100644 --- a/tests/cases/fourslash/codeFixClassImplementInterfaceComputedPropertyNameWellKnownSymbols.ts +++ b/tests/cases/fourslash/codeFixClassImplementInterfaceComputedPropertyNameWellKnownSymbols.ts @@ -1,7 +1,19 @@ /// -// @lib: es2017 - +// @noLib: true +////declare const Symbol: { +//// readonly hasInstance: unique symbol, +//// readonly isConcatSpreadable: unique symbol, +//// readonly iterator: unique symbol, +//// readonly match: unique symbol, +//// readonly replace: unique symbol, +//// readonly search: unique symbol, +//// readonly species: unique symbol, +//// readonly split: unique symbol, +//// readonly toPrimitive: unique symbol, +//// readonly toStringTag: unique symbol, +//// readonly unscopables: unique symbol, +////}; ////interface I { //// [Symbol.hasInstance](o: any): boolean; //// [Symbol.isConcatSpreadable]: boolean; @@ -22,7 +34,20 @@ verify.codeFix({ description: "Implement interface 'I'", newFileContent: -`interface I { +`declare const Symbol: { + readonly hasInstance: unique symbol, + readonly isConcatSpreadable: unique symbol, + readonly iterator: unique symbol, + readonly match: unique symbol, + readonly replace: unique symbol, + readonly search: unique symbol, + readonly species: unique symbol, + readonly split: unique symbol, + readonly toPrimitive: unique symbol, + readonly toStringTag: unique symbol, + readonly unscopables: unique symbol, +}; +interface I { [Symbol.hasInstance](o: any): boolean; [Symbol.isConcatSpreadable]: boolean; [Symbol.iterator](): any; @@ -64,7 +89,7 @@ class C implements I { [Symbol.toPrimitive](hint: any) { throw new Error("Method not implemented."); } - [Symbol.toStringTag]: string\; + [Symbol.toStringTag]: string; [Symbol.unscopables]: any; }`, });